Leanback
ライブラリを使用してテレビ用Androidアプリを開発しています。私はHLS
ビデオストリームを持っていて、URIのsrt
字幕を持っています。このexample appで使用されているExoPlayer
バージョン2.5.4
を使用しています。私は私のMediaSource
使用して作成された:私のPlaybackTransportControlGlue
でLeanback ExoPlayerでクローズドキャプションを切り替えるにはどうすればいいですか?
private MediaSource onCreateMediaSource(Uri uri, Uri subtitleUri) {
String userAgent = Util.getUserAgent(mContext, "ExoPlayerAdapter");
MediaSource videoSource = new HlsMediaSource(uri,
new DefaultDataSourceFactory(mContext, userAgent),
null,
null);
Format subtitleFormat = Format.createTextSampleFormat(
"1", MimeTypes.APPLICATION_SUBRIP, 0, "en");
MediaSource subtitleSource = new SingleSampleMediaSource(
subtitleUri,
new DefaultDataSourceFactory(mContext, userAgent),
subtitleFormat, C.TIME_UNSET);
MergingMediaSource mergedSource =
new MergingMediaSource(videoSource, subtitleSource);
return mergedSource;
}
を、私はPlaybackControlsRow.ClosedCaptioningAction
を持っています。このボタンをクリックすると、クローズドキャプションを切り替えるためにアクションディスパッチャーに何を書き込むのですか?
E/gralloc: unregister FBM buffer
私はビデオトラックの選択について語っていますが、字幕トラックの選択にも同じロジックが適用されます。さらに詳しい情報が必要な場合は、ここで詳細な答えを書くことができます。ただ私に教えてください:) https://stackoverflow.com/questions/45835562/quality-selector-for-exoplayer-2/45844705#45844705 さらに適切かもしれないこの答えがあります。あなたの探しているものでない場合は、私に知らせてください:https://stackoverflow.com/questions/46521570/how-to-add-multiple-subtitles-in-exo-player-2/46547904#46547904 –
@KyleVenn私はすでに第2のリンクであなたの提案をしました。最初のリンクは、ビデオ品質とオーディオの変化について話しているようです。私はそれを望んでいない。ボタンをクリックすると、クローズドキャプションをオン/オフするだけです。私はすでにボタンにリスナーを持っています。私はどのコードがCCを切り替えるのか知りたい。 – khateeb
最初のリンクは動画の品質(TRACK_TYPE_VIDEO)ですが、クローズドキャプションでも同じコードが有効です(トラックグループによってもバックアップされているため)。 'selector.setSelectionOverride(rendererIndex、trackGroups、override);'はあなたが望むものに対してはまだ動作します。 'C.TRACK_TYPE_VIDEO'の代わりに' C.TRACK_TYPE_TEXT'が必要です。それがはっきりしない場合は、私に知らせてください、私は以下のより完全な答えを書くでしょう。 –