私はExoplayerバージョン2.0.4を再生しますHLSストリーム(.m3u8)を使用しています。私のHLSストリームにはクローズドキャプションが含まれています。 exoplayerでクローズドキャプションを制御するにはどうすればよいですか?必要に応じて字幕を表示/非表示し、必要に応じて字幕レイアウトの配置を変更することは可能ですか?ExoplayerのHLSストリーミングURLでクローズドキャプションをオン/オフにする方法は?
答えて
DefaultTrackSelector
を使用して、ExoPlayer 2でキャプションの選択を制御することができました。以下のコードは、ExoPlayer 2 DemoのTrackSelectionHelper
クラスに基づいて変更されました。これは実装の詳細を参照する必要があります。
キャプションをオフにするには、テキストトラックのレンダラーを無効にして、選択オーバーライドをクリアする必要があります。
trackSelector.setRendererDisabled(TRACK_TEXT, true);
trackSelector.clearSelectionOverrides();
TRACK_TEXT
Iは、ビデオ/オーディオトラックに関連するテキストトラック(2)のインデックスを表す作成ローカル静的変数です。私は、SelectionOverridesはプログラムで指定されたトラック選択であると考えています。
トラックを再び有効にするには、テキストトラック用のレンダラーを有効にしてから、希望のテキストトラックに新しいSelectionOverride
を設定する必要があります。これを行うには、DefaultTrackSelector
から現在マップされているテキストトラックのTrackGroupArray
を取得する必要があります。複数の実装の詳細について
MappingTrackSelector.MappedTrackInfo mappedTrackInfo = trackSelector.getCurrentMappedTrackInfo();
TrackGroupArray textGroups = mappedTrackInfo.getTrackGroups(TRACK_TEXT); // list of captions
int groupIndex = 1; // index of desired caption track within the textGroups array
trackSelector.setRendererDisabled(TRACK_TEXT, false);
MappingTrackSelector.SelectionOverride override =
new MappingTrackSelector.SelectionOverride(fixedFactory, groupIndex, 0);
trackSelector.setSelectionOverride(TRACK_TEXT, textGroups, override);
(例えば、初期化trackSelector及びfixedFactory)、TrackSelectionHelperファイルから始まる、ExoPlayer 2 Demoをチェックしてください。注:TrackSelectionHelper
ファイルは、ビデオ/オーディオ/テキストトラックを選択するために書かれているので、キャプションの選択に厳密には必要ない多くのコードが存在することに注意してください。
SubtitleView
を使用すると、レイアウト内にキャプションを配置できます。あなたのクラスはTextRenderer.Output
を実装し、onCues()
メソッドをオーバーライドする必要があります。
@Override
public void onCues(List<Cue> cues) {
if (subtitleView != null) {
subtitleView.onCues(cues);
}
}
字幕Uri /リンクをこのコードにどこでどのように渡しますか? –
@SamRamezanliメディアソースを作成してプレーヤーを準備する方法はこちらをご覧ください。https://google.github.io/ExoPlayer/guide.html#preparing-the-player テキストとビデオのトラックがすべて1つのマニフェスト/ URLに含まれています。実装の詳細は[デモ](https://github.com/google/ExoPlayer/tree/release-v2/demos/main/src/main/java/com/google/android/exoplayer2/demo)に基づいています –
ありがとう@テイラーが、私はDASHを使用していると私はキャプションをビデオにリンクする必要があります。現在共有しているリンクで同じソリューションを使用していますが、この方法では、プレーヤーを解放して再起動しない限り、キャプションを有効または無効にすることはできません。 –
- 1. Exoplayer適応型hlsストリーミング
- 2. Android ExoPlayer - ビデオ(非DASH/HLS)とストリーミングを同時にダウンロードする
- 3. 一度ストリーミングされたHLSビデオURLをキャッシュする方法
- 4. m3u8 URLからHLSビデオストリームのクローズドキャプション形式を表示するには
- 5. ExoplayerでHLS埋め込みキャプションを表示する方法
- 6. AndroidでHLSストリーミング
- 7. サムスンインターネットでHLSストリーミングとHLSストリーミングを使用したHTML5オーディオ
- 8. ExoPlayer - HLSビデオがライブかどうかを知る方法?
- 9. exoplayer(DASH)でアンドロイドアプリにYouTubeライブビデオをストリーミング
- 10. preload playerItemのリストのHLSストリーミング
- 11. HLSビデオを検出する方法は、Exoplayer androidのライブ、VOD、またはイベントのためのものです
- 12. Swift 3:HLSストリーミング用のJWPlayer用に複数のCookieを設定する方法
- 13. ライブHLSビデオの再生時にBehindLiveWindowExceptionを与えるExoplayer(2.0.0)
- 14. HLSストリーミング:PHPからチャンクを得ることが可能ですURL:
- 15. フロープレーヤーを搭載したモバイルデバイスでHLSストリーミング
- 16. HLSストリーミングFFMPEGのレイテンシを短縮
- 17. Leanback ExoPlayerでクローズドキャプションを切り替えるにはどうすればいいですか?
- 18. ビデオ画面の下部にクローズドキャプションを表示する方法は?
- 19. HLSストリーミング、最初のチャンク用のタイマー
- 20. ExoPlayerでPreparedAsyncを使用する方法
- 21. オンラインラジオをストリーミングでストリーミングせずにストリーミングする方法はありますか?
- 22. HTML5でHLSを再生する方法
- 23. JavaでURLから音楽をストリーミングする方法 - Android
- 24. rokuにクローズドキャプションを表示するには?
- 25. ExoPlayerをURLでソースタイプを認識させるには?
- 26. TwitterのストリーミングAPIを使用してURLをトラッキングする方法
- 27. Pyspark:特定のAPI URLからデータをストリーミングする方法
- 28. Phonegapでオンラインラジオをストリーミングする方法は?
- 29. AndroidでRTMPをストリーミングする方法は?
- 30. pyserialでボットセンサーをストリーミングする方法は?
こんにちはRAM、字幕を正しく表示できましたか?もしそうなら、バージョン2のExoplayerで字幕を追加するコードを共有できますか?ありがとうございます – Jaz
Exoplayerでは、私はgithubプロジェクトでSimpleExplayer Viewクラスを使ってクローズドキャプションをカスタマイズすることができました。あなたは、表示/非表示、タイトルテキストのフォント、色、配置を変更することができます... –
@RamJayあなたは字幕を表示/非表示にできましたか?私はExoplayerで字幕を表示することもできましたが、現在はそれらをON/OFFしたいと思っています。これどうやってやるの? – William