有效解決這問題,除了loop=1
以外,要多加一個 playlist 參數playlist=VIDEO_ID
,這對我有效
參考資料:
https://developers.google.com/youtube/player_parameters#loop
https://stackoverflow.com/a/25781957/6784662
[……]
有效解決這問題,除了loop=1
以外,要多加一個 playlist 參數playlist=VIDEO_ID
,這對我有效
參考資料:
https://developers.google.com/youtube/player_parameters#loop
https://stackoverflow.com/a/25781957/6784662
[……]
YouTube JavaScript API 於載入完成後會呼叫一次 onYouTubeIframeAPIReady 這個全域方法,只會呼叫一次,但如果其他程式已經先載入了 YouTube JavaScript API 並初始後另外再加載 YouTube JavaScript API 則 onYouTubeIframeAPIReady 這個方法將會被覆蓋,導致最後載入的程式將不會被呼叫
也不知道為什麼 YouTube JavaScript API 不用事件觸發的方式,而且 function 名稱也沒辦法改,使用一些主題或模板,根本不知道有沒有先載入過YouTube JavaScript API,Debug到昏倒
為了避免 onYouTubeIframeAPIReady 這方法已被占用,這裡不用這個方法,首先一樣載入 API:
接著建立建構方法取代原 onYouTubeIframeAPIReady 中的程式
接著透過計時器重複判斷 YT 是否被初始,若 YT 已初始就呼叫上方建構方法,如此即可不用依賴 onYouTubeIframeAPIReady 這方法,避免被覆蓋的問題
https://stackoverflow.com/a/36048501/6784662
[……]
YouTube JavaScript API 於載入完成後會呼叫一次 onYouTubeIframeAPIReady 這個全域方法,只呼叫一次,如果已經使用了 jQuery YTPlayer 另外再加載 YouTube JavaScript API 則,onYouTubeIframeAPIReady 這個 function 將會被覆蓋,不管誰覆蓋誰,總之就是有個會被覆蓋,導致另一段初始的程式將不會被呼叫
也不知道為什麼不用事件觸發的方式,而且 function 名稱也沒辦法改,使用一些主題或模板,根本 也不知道有沒有先載入過YouTube JavaScript API,Debug到昏倒
幸好 YTPlayer 算有良心的,沒有霸佔這個方法, YouTube JavaScript API 呼叫 YTPlayer的 onYouTubeIframeAPIReady 後會發送一個 YTAPIReady 事件,偵聽這個事件,可以將本來在自己的 onYouTubeIframeAPIReady 要做的事改在事件觸發後執行,以下如以下代碼:
如此一來,兩個 onYouTubeIframeAPIReady 都正確被執行拉
https://github.com/pupunzi/jquery.mb.YTPlayer/issues/163
如果沒有使用 YTPlayer 一樣可以解決這個問題,可參考此篇
[……]