저품질의 FullHD 동영상을 재생하기 위해 YouTube iframe API를 설정하려고합니다. 내 목표는 모바일 장치의 대역폭을 절약하고 로딩 시간을 줄이는 것입니다. 내 HTML 구조는 클래식 플레이어 div와 메시지 용 디버그 div입니다.YouTube 기기의 iFrame API setPlaybackQuality이 휴대 기기에서 무시되었습니다.
(이 post에서 제안) 나는 플레이어가 준비되면 버퍼링 시간을 낭비하는 모바일 사용자를 방지하기 위해 즉시 setPlaybackQuality
를 호출하려고했습니다
<div id="debug"></div>
<div id="your_video_id">
<div id="player"></div>
</div>
HTML. 나는 또한 "BUFFERING"과 "PLAYING"상태에서 그것을 호출했다. 품질이 변경되면 디버그 내용이 실제 재생 품질로 업데이트됩니다.
JAVASCRIPT
/* Trigger player ready */
function onPlayerReady(event)
{
player.setPlaybackQuality("small");
}
/* Detect playback quality changes */
function onQualityChange(event)
{
document.getElementById("debug").innerHTML = event.data;
}
/* Trigger player events */
function onPlayerStateChange(event)
{
if (event.data == YT.PlayerState.BUFFERING)
{
player.setPlaybackQuality("small");
}
if (event.data == YT.PlayerState.PLAYING)
{
player.setPlaybackQuality("small");
}
}
코드 (디버그가 올바르게에 "작은"설정) 바탕 화면에 작동하는 것 같다 있지만 안드로이드 4.2에서 테스트 "Large"로 설정 모바일 (디버그에 무시됩니다. 2). 이것에 대한 해결책이 있습니까?
는
+1. 같은 문제가 발생하여 onReady, onStateChange에서 BUFFERING 및 PLAYING으로 모두 분리하여 다양한 조합으로 시도했습니다. 아무 것도 작동하지 않습니다. https://code.google.com/p/gdata-issues/issues/detail?id=7191&thanks=7191&ts=1432253375 –
iOS에서 동영상 품질은 iFrame 플레이어의 크기에 따라 직접 설정됩니다. 따라서 어떤 크기로 설정했는지에 상관없이 모바일 플레이어는 항상 가장 가까운 크기가 플레이어 크기와 일치하도록 설정을 무시합니다. 이것은 YouTube Help Assistant가 iOS 개발자에게 제공하는 커다란 문제입니다. iOS 개발자는 웹보기에서 iFrame 플레이어입니다. YouTube는 모바일에서 불필요한 데이터 사용을 피하기 위해 의도적으로이를 수행했다고 주장합니다. – JAL
@ JAL : 흠. 그래서, 나는 350 x 200에 대해 지정된 최소 크기에 가깝습니다. 240p로 설정해서는 안됩니까? 그리고 실제로는 175 x 100 \ @ 2x이기 때문에 144p에 더 가깝지 않습니까? 나는이 점이 YT iFrame API 측면의 문제라고 생각합니다. 왜냐하면 [데스크톱의 품질을 낮추려고해도 작동하지 않지만 더 높은 품질을 추구하는 것으로 나타났습니다.] (http://stackoverflow.com/questions/30468161/) loading-youtube-iframe-api-video-at-a-lower-quality) –