2014-02-07 169 views
2

對於youtube視頻,您有一個按鈕可以在Flash和HTML5版本中全屏退出。有沒有辦法以編程方式退出全屏使用Javascript的視頻完整?所以基本上一旦視頻結束,我希望它退出全屏模式。您是否可以在視頻完整屏幕上全屏顯示youtube視頻

+0

什麼庫/框架將用於嵌入視頻?給我們更多的細節。我會建議[MediaElement.js](http://mediaelementjs.com/) –

+0

我只是使用YouTube API。我沒有看到在YouTube的API文檔中做到這一點的方法。 – ski760

+0

我認爲目前無法發佈[此處](https://code.google.com/p/gdata-issues/issues/detail?id=5710)。 –

回答

3

簡短的回答是否。目前,沒有辦法以編程方式從Youtube播放器100%安全地退出,但是有一種解決方法是100%安全的。

基本上你需要做的是遵循一系列簡單的步驟,它會在所有瀏覽器正常工作:

第1步:把你的Youtube代碼中的隱形DIV裏面,可以說它被稱爲「codeholder」 。

第2步:將一個可見的DIV作爲隱形DIV的持有者。這就是代碼將要去的地方,假設它被稱爲「ytPlayer」。

第3步:加載頁面時,將不可見的DIV複製到可見的DIV中。例如,這可以完成如下:

document.getElementById('ytPlayer').innerHTML = document.getElementById('codeholder').innerHTML; 

第4步:我假設你正在使用的Youtube API,所以,當YouTube.PlayerState.ENDED事件被觸發(或只要你想),無形DIV複製到可見的DIV。這將強制瀏覽器關閉播放器以關閉全屏,並且會顯示原始播放器。

我喜歡在YouTube.PlayerState.ENDED事件上這樣做,因爲這是關閉播放器的破壞性方式,所以視頻將不會在「退出」全屏後繼續播放。

然而,Youtube的API允許你「讀」的播放位置,你可以用一些輕的編碼輕鬆地恢復播放位置。儘管會有一小段時間的停頓。

+0

這裏有一個演示,類似的,但同樣的想法:[鏈接](http://codepen.io/anon/pen/ORepGy?editors=0010) – Shikkediel

+0

[高級版本新增](http://codepen.io/Shikkediel/pen/zKVRBJ?編輯= 0010),處理全球範圍等。 – Shikkediel

+0

檢查這個stackoverflow後。 http://stackoverflow.com/questions/10706070/how-to-detect-when-a-page-exits-fullscreen – Chandan