2014-01-23 3 views
2

다음과 같이 YouTube 플레이어를 내 웹 페이지에 삽입하려고합니다.Android 4.3의 YouTube Embeded Player

문제는 플레이어가 처음에는 비디오를로드하고 재생하지만 플레이어가 .loadVideoById를 호출하면 플레이어가 비디오 (비디오 타이틀 텍스트가 변경됨)를로드하는 것처럼 보이지만 검정색 화면에서 멈 춥니 다. 연주하는 대신에.

이전에 4.2에서 잘 작동했던 Android 4.3으로 휴대 전화를 업데이트 한 이후로 HTML5 플레이어 (Chrome과 기본 브라우저 모두)가 Android에서만 발생합니다.

Android를 가짜로 설정 한 사용자 에이전트가 포함 된 데스크톱 크롬을 통해 정상적으로 작동합니다.

나는 또한 다른 두 개의 Android 휴대 전화에서 시도했으며 두 가지 모두에서 똑같은 문제를 겪고 있습니다 (둘 다 4.3 임). 나는 또한 Google Code Playground Example Youtube Player를 사용하여 간헐적으로 동일한 동작을 얻고 있습니다.

ADB Chrome 원격 디버거를 연결하면 비디오 조각이 예상대로 다운로드되지만 플레이어가 버퍼링 상태에 고생하는 것을 볼 수 있습니다.

비슷한 경험이 있습니까? 아니면 어떤 제안이 있습니까?

코드 :

<div id="ytwrapper"> 
<div id="player" > 
</div> 
</div> 
<script type="text/javascript"> 
var ytplayer; 

2.이 코드는 비동기 IFrame을 플레이어 API 코드를로드합니다.

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

3.이 기능은 API 코드를 다운로드 후 (그리고 YouTube 플레이어)를 생성한다.

function onYouTubeIframeAPIReady() 
{ 
    ytplayer = new YT.Player('player', { width: 1280, 
          height: 720, 
          videoId: 'M7lc1UVf-VE', 
          frameborder:0, 
       events: 
          { 
          "onReady": onYouTubePlayerReady, 
        "onStateChange": onytplayerStateChange, 
        "onPlaybackQualityChange": onYTQchange, 
       "onError": onYTError 
         } 
          }); 
} 

function loadnextvid() 
{ 
    ytplayer.loadVideoById(vids[currentvid],0, vqs[currentvid]); 
} 

function onYouTubePlayerReady(playerId) 
{ 
loadnextvid(); 
} 
</script> 

답변

4

나는 동일한 문제가있었습니다. 이 순간을 바로 잡을 수있는 유일한 방법은 플레이어 인스턴스를 파괴하고 다시 만드는 것입니다.

나는 여기에이 솔루션을 발견 : https://code.google.com/p/gdata-issues/issues/detail?id=5273

작품을 내 안드로이드 4.4, iOS7에 대한.

if (player != null) { 
    player.destroy(); 
    player = null; 
} 


player = new YT.Player('divplayer', { 
       width: '100%', 
       height: '100%', 
       videoId: video_id, 

       playerVars: { 'autoplay': 0, 'playerapiid': 'ytPlayer', 'border': 0, 'hd': 1, 'version': 3, 'rel': 0, 'color' : 'red' }, 


       events: { 
        'onReady': onPlayerReady 
       } 

      });