0

コンテンツ スクリプトを使用して、Google Chrome 拡張機能を開発しています。YouTube ビデオ プレーヤーを埋め込んだページを操作したい。をwww-widgetapi-vfljlXsRD.jsJavaScript ファイルとしてインクルードし、拡張サンドボックス内で YouTube 名前空間が正しく初期化されました。

既存の iFrame プレーヤーへの参照を取得しようとしています。それを達成するために、私はこれを試しました:

var ytplayer = new YT.Player('ytplayer'); 
ytplayer.pauseVideo();

div#ytplayer実際のプレーヤーを埋め込んでいる iFrame はどこにありますか。

メソッドが存在しないことを示す次のエラーが表示されます。

TypeError: オブジェクト # にはメソッド 'pauseVideo' がありません

既存のプレーヤーへの参照を取得する正しい方法は何ですか?

4

2 に答える 2

1

わかりました、既存のプレイヤーと話す方法を見つけました。私は実際にそれへの実用的な参照を得ることができませんでした。

私は Rob のすばらしい仕事 ( YouTube iframe API: how do I control a iframe player that 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イベントには現在のプレーヤーの時間が含まれ、ビデオの再生中に送信されます。このイベントを聞いて、現在のプレイヤー時間を知ることができるようになりました。

私はこれまでのところ適切な解決策を見つけていないので、これが当面の仕事になります。

于 2013-06-14T16:55:54.523 に答える