2013-08-12 2 views
2

현재 -UIwebView 안에 YouTube 동영상을로드하고 있습니다. 완벽하게 작동하며 동영상이 자동으로 재생되기 시작합니다. 문제는 일단 동영상이 -UIwebView 내부에서 완료되면 재생 버튼을 멈추고 표시한다는 것입니다. 그러나 사용자가 매번 '완료'버튼을 직접 누르지 않아도되도록 비디오 플레이어를 닫고 싶습니다. 그것이 결국 어떻게 내 코드에 첫 번째 대답을 구현하는 시도YouTube 동영상 재생이 끝난 후 닫히지 않습니다.

이가 : 여기

Image of the screen when the video doesn't close.

내가 -UIwebview

NSString *youTubeVideoHTML = [NSString stringWithFormat:@"<!DOCTYPE html><html><head> 
<style>body{margin:0px 0px 0px 0px;}</style></head> <body> <div id=\"player\"></div> <script> 

    var tag = document.createElement('script'); tag.src = \"http://www.youtube.com/player_api\"; 
    var firstScriptTag = document.getElementsByTagName('script')[0]; 
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
    var player; 

    function onYouTubePlayerAPIReady() { 
     player = new YT.Player('player', { 
      width:'320', 
      height:'200', 
      videoId:'%@', 
      events: { 
       'onReady': onPlayerReady, 
      } 
     }); 
    } 

    function onPlayerReady(event) { 
     event.target.playVideo(); 
    } 

</script> </body> </html>", [[NSUserDefaults standardUserDefaults] 
objectForKey:@"detailVideoURL"]]; 

EDIT 내부의 영상을 시작 링크의 처럼. 나는 콜백에 무엇을 추가해야하는지 아직도 확신 할 수 없다. 오류의

NSString *youTubeVideoHTML = [NSString stringWithFormat:@"<!DOCTYPE html><html><head><style>body{margin:0px 0px 0px 0px;}</style></head> <body> <div id=\"player\"></div> <script> 
var tag = document.createElement('script'); tag.src = \"http://www.youtube.com/player_api\"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; 

    function onYouTubePlayerAPIReady() { 
    player = new YT.Player('player', { 
    width:'320', 
    height:'200', 
    videoId:'%@', 
    events: { 
    'onReady': onPlayerReady, 
    } 
    }); 
} 
function onPlayerReady(event) { 
event.target.playVideo(); 
} 

function onPlayerStateChange(event) { 
    if (event.data == YT.PlayerState.PLAYING && !done) { 
     setTimeout(stopVideo, 6000); done = true; 
    } 

if (event.data == YT.PlayerState.ENDED) { 
window.location = "callback:nil"; }; } 

    function stopVideo() { 
player.stopVideo(); 

} 

</script> </body> </html>", [[NSUserDefaults standardUserDefaults] objectForKey:@"detailVideoURL"]; 

이미지 : http://gyazo.com/31da955d8af98f40b82789a7f60c1edb

답변

관련 문제