2013-10-08 33 views
4

我需要能夠通過iframe API以編程方式將視頻加載到元素中,並讓它在移動設備(iOS 6,iOS 7,最新的Android)上播放。通過iFrame API以編程方式嵌入YouTube視頻不會在移動設備上播放

這裏是JavaScript:

var tag = document.createElement('script'); 

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

var player 

var ping = new VideoModel({ 
    videoId: 'qMD2Jifubto', 
    start: 20, 
    end: 28 
}); 

function VideoModel(attributes) { 

     this.attributes = { 
      videoId: attributes.videoId, 
      start: attributes.start, 
      end: attributes.end 
     } 

     this.get = function(attr) { 
      if (attr) { 
       return this.attributes[attr] 
      } else { 
       return this.attributes 
      } 

     } 

} 

function onYouTubeIframeAPIReady() { 

    player = new YT.Player('thumbnail-inner', { 
     height: '100%', 
     width: '100%', 
     enablejsapi: 1, 
     events: { 
      'onReady': onPlayerReady 
     }, 
     rel: 0, 
     playerVars: { 
      controls: 0, 
      modestBranding: 1, 
      showinfo: 0 
     } 

    }); 

} 

function onPlayerReady(event) { 
    event.target.loadVideoById({'videoId': ping.get('videoId'), 'startSeconds': ping.get('start'), 'endSeconds': ping.get('end'), 'suggestedQuality': 'large'}); 
} 

這完美的作品在桌面上,但對於移動(測試在iOS和Android)在YouTube播放器工作負載,但視頻加載與「視頻不可用」,或只是一個黑屏。

你能幫助在手機上完成這項工作嗎?

+0

這可能幫助,而不是使用API​​使用正常的iframe嵌入 http://stackoverflow.com/questions/12106511/jquery-mobile-open-video-link-inside-page – Jianhong

+0

我知道嵌入代碼不工作。但是,如果我使用嵌入其解決方法,我該如何更新視頻ID?此外爲什麼嵌入代碼工作,但iframe api不? – CarbonDry

+0

https://developers.google.com/youtube/iframe_api_reference?hl=zh-TW#Mobile_considerations – CBroe

回答

0

如果用戶交互不是問題,您可以在html文件(在iframe中)將自動播放屬性設置爲1。它在android中有效。

<iframe src="http://www.youtube.com/embed/#{video_id}?enablejsapi=1&autoplay=1"></iframe> 

看起來像android瀏覽器不響應youtube api,尤其是與iframe和YTplayer api。它只是不會以編程方式啓動。

+0

可能是這個答案需要更新,因爲它沒有工作,至少現在它是'https',並且可能會進一步改進,謝謝 – user10089632

相關問題