tvmlkit jsのメソッドchangeToMediaAtIndexを使用してプレイリストのビデオを変更する方法はありますか? このメソッドをプレーヤークラス(player.changeToMediaAtIndex(2))で使用すると、何も起こりませんでした...メソッドの使用方法changeToMediaAtIndex tvmlkit js
1
A
答えて
0
私もこの問題を抱えていました。私のコードはこのように見えました。
var player = new Player();
player.playlist = new Playlist();
this.currentMediaItemIndex = 0;
for (var i = 0; i < videoItemsList.length; ++i) {
var video = new MediaItem('video', videoItemsList[i].videoUrl.valueOf());
video.artworkImageURL = videoItemsList[i].artworkUrl;
video.title = videoItemsList[i].title;
video.resumeTime = videoItemsList[i].watchedSeconds;
if (videoItemList[i].videoId == this.startingVideoId) {
this.currentMediaItemIndex = i;
}
player.playlist.push(video);
}
player.play();
player.changeToMediaAtIndex(this.currentMediaItemIndex);
私は再生を呼び出し、すぐにメディアアイテムを変更するように電話します。私は別の注文(アイテムを変更した後に電話をかける)を試みました。コードを踏んだとき、それは意図したとおりに動作することに気付きました。上記のコードを含むplay関数を呼び出す前に、アクションによってコントローラにthis.startingVideoId
が設定されていることに注意してください。 videoItemsList
も上記で定義されており、オブジェクトにはビデオ情報があります。
イベントリスナーを追加し、currentItemを変更しようとする前にプレイヤーからイベントを受け取るまで待つことにしました。私は、再生機能からplayer.changeToMediaAtIndex(this.currentMediaItemIndex);
を削除し、それをイベントリスナーに移動しました。
プレイヤーがそうしたように作成されたときに、イベントリスナーを再生関数に追加しました。
player.addEventListener("stateDidChange", this.stateDidChange);
は、それから私は、プレイリストをチェックし、それが再生状態になったとき、それは右のビデオを再生しているかどうかを確認するためにイベントリスナーを実装しました。
private stateDidChange = (event) => {
if (event.state == "playing") {
var player = <Player>event.target;
for (var i = 0; i < player.playlist.length; ++i) {
if (player.playlist.item(i) == player.currentMediaItem) {
if (i != this.currentMediaItemIndex) {
player.changeToMediaAtIndex(this.currentMediaItemIndex);
}
break; // break out of the loop since we don't care about the rest.
}
}
}
};
これはすぐれていて、常に正しい場所から始まります。トラックが変更されたときにcurrentMediaItemIndexを変更するなど、イベントリスナーで追加の状態をトラッキングする必要がありますが、これは正しい軌道に乗るはずです。
ここでもまだ多くの良いtvosの回答はありません。うまくいけば、これが役に立ちます。
ハッピープログラミング。
関連する問題
- 1. TVMLKitのスクラブを無効にする方法JS Playerクラス
- 2. AngularFireを使用してFirebase JSメソッドを呼び出す方法
- 3. "create_web_element"メソッドの使用方法
- 4. Moq.MockRepository.Of()メソッドの使用方法
- 5. Enumerableメソッドの使用方法
- 6. Paginateメソッドの使用方法
- 7. prepareForReuseメソッドの使用方法
- 8. Rect.intersectメソッドの使用方法
- 9. getDrawingCache()メソッドの使用方法
- 10. 角4使用方法.js
- 11. Rails、メソッドhtml/jsへの追加方法
- 12. JS libのdocument.getElementById()の使用方法
- 13. angle2 Polyfill jsファイルの使用方法
- 14. AppleTV - tvos - ネイティブとTVMLKITを使用したハイブリッドアプリ - ネイティブアプリに戻れません
- 15. Firebase AuthのsigninWithFacebook()メソッドの使用方法
- 16. ImageSwitcherでのmakeView()メソッドの使用方法
- 17. CでのList.Contains()メソッドの使用方法
- 18. python-dotenvの "find_dotenv"メソッドの使用方法
- 19. Guava MultimapのreplaceValuesメソッドの使用方法?
- 20. PasswordHasherのVerifyHashedPasswordメソッドの使用方法は?
- 21. tf.train.Saver()のメソッドrecover_last_checkpointsの使用方法?
- 22. OpenCVsharpのMat.ForEachAsDoubleメソッドの使用方法
- 23. メソッド内のxmlコメントの使用方法
- 24. TypedArrayでのrecycle()メソッドの使用方法
- 25. DoctrineのArrayCollection :: existsメソッドの使用方法
- 26. Embarcadero:TBase64EncodingのEncodeBytesToStringメソッドの使用方法
- 27. メッセージダイジェストクラスの更新メソッドの使用方法
- 28. AliasToBeanResultTransformerのtransformListメソッドの使用方法は?
- 29. jsファイルでrubyメソッドを書く方法
- 30. HttpClient.GetStreamAsync()メソッドの使用方法は?