0

我正在使用內容腳本開發Google Chrome擴展。我想與嵌入YouTube視頻播放器的網頁進行互動。我已將www-widgetapi-vfljlXsRD.js作爲JavaScript文件加入,並且YouTube名稱空間在擴展沙箱內正確初始化。YouTube Player API:檢索對現有播放器的引用

我試圖檢索對現有iFrame播放器的引用。爲了實現這一目標,我想這:

​​

其中div#ytplayer是的iFrame嵌入實際的播放器。

我得到這個錯誤,告訴該方法不存在:

TypeError: Object # has no method 'pauseVideo'

什麼是檢索到現有的播放器中,正確的方法是什麼?

+1

如果您只想暫停/播放視頻,請查看此問題右側的第一個鏈接(位於「相關」標題下方)。 –

+0

我想實際獲取視頻的當前時間。感謝您的幫助 –

回答

1

我以前使用的是YouTube播放器API,並且工作正常。今天我有像你這樣的問題,我沒有改變我的代碼中的任何東西。這可能意味着www-widgetapi-vfljlXsRD.js已被更改,並遇到錯誤...我無法進一步幫助。

+0

現在問題已解決,但我仍無法獲得對現有玩家的參考。你是否設法在你身邊這樣做? –

1

好的,我找到了我的方式與現有的球員交談。我沒有真正設法得到它的工作參考。

我被羅布(參見YouTube iframe API: how do I control a iframe player that's already in the HTML?)的驚人作品的啓發,我說的是,YouTube播放器發送消息到主窗口,如下所示:

{"event":"infoDelivery","info":{"currentTime":3.3950459957122803,"videoBytesLoaded":244,"videoLoadedFraction":0.24482703466872344},"id":1}

您可以通過觀察它在包含正在播放的播放器的窗口中收聽「消息」事件window.addEventListener('message', function (event) {console.log(event.data)}, false);

infoDelivery事件包含當前玩家的時間並在視頻播放時發送。聽這個事件,我現在可以知道當前玩家的時間。

到目前爲止,我還沒有找到合適的解決方案,所以這一個將使目前的工作。

相關問題