YouTube Player API

前提是可以訪問外網(wǎng)。

YouTube Iframe 提供了API可以控制視頻播放的控制。

在angular2項(xiàng)目中使用中也遇到了一些坑。

參考文檔:

官方文檔

Use YouTube iframe API with Angular2 and Typescript

demo

官方文檔說明的是使用javascript的方法。

// 2. This code loads the IFrame Player API code asynchronously.var tag = document.createElement('script');

步驟也寫的特別清楚。

關(guān)于YouTube視頻需要說明的一點(diǎn),就是如果我們直接在iframe里調(diào)用視頻的話,需要注意的。

如圖下面,這是在YouTube上分享視頻,但是直接用這個地址是不對的



報錯


地址需要下面的樣子才可以?

https://www.youtube.com/embed/jdqsiFw74Jk

也就是在

https://www.youtube.com/embed/

后面加上視頻的ID


好了,下面就開始看怎么使用

使用


這是官方文檔的使用步驟。

1. 添加頁面元素

2. 往頁面動態(tài)添加script引用youTube Iframe API

3. 創(chuàng)建實(shí)例

? ? onYouTubeIframeAPIReady方法會在API完成的時候調(diào)用并創(chuàng)建實(shí)例。并且我們可以在實(shí)例中添加一些函數(shù)來檢測視頻的變化。

? ? 像官方文檔中的onPlayReady,onPlayrStateChange. 當(dāng)視頻觸發(fā)對應(yīng)的狀態(tài)時就會觸發(fā)相應(yīng)的函數(shù)。

? ? 當(dāng)然已經(jīng)創(chuàng)建實(shí)例了,我們可以通過實(shí)例對象來獲取相應(yīng)的數(shù)據(jù)和進(jìn)行相應(yīng)的操作。這些都可以在文檔里看到。


獲取數(shù)據(jù)

這里也能看出播放器的幾個狀態(tài)。


angular2里的應(yīng)用

記得在package.json里把@types/youtube加上 版本我用的 ‘0.0.29’

1、往頁面添加script實(shí)在ngAfterViewInit里添加

2、注冊onYouTubeIframeAPIReady方法可在onInit里通過如下方法。

然后就可以進(jìn)行我們的想要的操作了。



我做的時輪播圖里視頻如果播放或加載中,自動輪播停止,手動切換輪播,當(dāng)前視頻播放暫停播放暫?;蛲V梗]啿ァ?/p>

在這里面也遇到了個問題就是視頻播放傳到子組件的老是有反應(yīng)時間。然后鼠標(biāo)移開的時候又會觸發(fā)自動播放進(jìn)行判斷當(dāng)前播放狀態(tài)。所以播放狀態(tài)快速操作的話經(jīng)常會獲取不對。后來發(fā)現(xiàn)比較簡單的解決就是只要移開我就把timer清掉,不管是不是暫停。(下圖原來清除是在if語句內(nèi)),如果組件有change會調(diào)用autoplay。 因?yàn)閍utoplay里的timer啟動第一次也是等5秒,如果這5秒內(nèi)上一次的狀態(tài)執(zhí)行了就出錯了,所以先清掉定時器的狀態(tài),重新開始定時器就好了。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,936評論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,184評論 4 61
  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務(wù) 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,159評論 1 180
  • 烏玥瀟爾邊想邊逛,突然,她走到了一片花海,停住了:“這是哪?我走到哪里了?啊,早知道就讓司俚陪同了,這下子好了,我...
    夏沫荒草閱讀 240評論 0 0
  • 什么是哲學(xué)? 哲學(xué)從英文單詞來看,就是愛智慧。人類的智慧是多種多樣,五花八門的。 為什么會有哲學(xué)呢? 人類自古以來...
    WindyLiu閱讀 442評論 0 1

友情鏈接更多精彩內(nèi)容