HLS ビデオをストリーミングするネイティブ Android アプリケーションに取り組んでいます。CEA-608 クローズド キャプション データを表示しようとしていますが、問題が発生しています。
方法論: クローズド キャプションと HLS 再生 ( http://developer.android.com/about/versions/android-4.1.html#Multimedia ) をサポートするジェリー ビーン デバイス (API 4.1+) で実行しています。
テスト フィード: キャプション データを含む Apple サンプル HLS bip-bop フィードを使用してテストしています ( https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8 )
キャプション データの取得: Android のドキュメントに従って、次のように呼び出してキャプション トラックを取得しようとしています。
"MediaPlayer.getTrackInfo()"
問題: getTrackInfo() 行を実行するとプレーヤーがクラッシュし、LogCat に次の出力が表示されます。
E/AndroidRuntime(7311): FATAL EXCEPTION: main E/AndroidRuntime(7311): java.lang.RuntimeException: エラー コード: -38
質問: 1) HLS フィードのインストリーム キャプション データからのクローズド キャプションのレンダリングは、ネイティブの Android アプリでサポートされていますか? 2) そうでない場合、代替手段はありますか? 3) 上記のリンクのドキュメント (以下に引用) は、インストリーム キャプションが MP4 または 3GPP メディア ソースでサポートされていることを示しています。それは必然的にHLS(MPEG-2ベースだと思います)の動作を除外しますか?
MediaPlayer は、帯域内と帯域外の両方のテキスト トラックを処理できるようになりました。インバンド テキスト トラックは、MP4 または 3GPP メディア ソース内のテキスト トラックとして提供されます。帯域外テキスト トラックは、addTimedTextSource() メソッドを介して外部テキスト ソースとして追加できます。すべての外部テキスト トラック ソースが追加されたら、getTrackInfo() を呼び出して、データ ソースで使用可能なすべてのトラックの更新されたリストを取得する必要があります。
ご協力いただきありがとうございます。