AndroidのアクティビティでVideoViewで読み込む必要がある.MP4ビデオファイルがあります。これらの動画には、ユーザーの言語(英語、フランス語、日本語...など)に対応する複数のオーディオトラックが含まれています。
このような機能を提供するためのヘルプやドキュメントを見つけるのに予期せぬトラブルが発生しました。私は現在、ビデオを読み込んでMediaControllerでVideoViewで再生できますが、オーディオトラックは変更できません。
Android SDKがこれを行う簡単な方法を提供しているかどうかはわかりません。私の問題を解決する方法はわかりません。私は、すべてのオーディオトラックを抽出し、言語に応じてMediaPlayerに必要なオーディオをロードしてから、オーディオとビデオを一緒に再生することを考えていました。しかし、私はいくつかの同期の問題が発生する可能性があり、私がこれを行うのを防ぐ恐れがあります。
手掛かりがある場合は、この問題を開始するのに役立つアドバイスがあれば、歓迎するよりも大事です。Android:VideoViewの複数のオーディオトラック?
答えて
まだ自分自身をテストしていませんが、Vitamioライブラリは、(他の興味深い機能の中でも)複数のオーディオトラックをサポートしているようです。 AndroidのVideoView
クラスとAPI互換です。
おそらくVitamioVideoView.setAudioTrack()
を使用して(たとえば、ロケールに基づいて)設定する必要があります。詳細については、Vitamio API docsを参照してください。
私は最後に、私が提案したことを正確に行いました。私はビデオとオーディオのデータを分離し、ユーザーの言語に応じてMediaPlayerにオーディオをロードし、両方のストリームを同期させました。それはかなり汚い解決策でしたが、私が仕事をしなければならなかった時には受け入れられました。 私はあなたのソリューションをテストしていませんが、それが私が必要としていたものとまったく同じであるように私はそれを受け入れます。とにかくありがとうございました ! – Vahron
VideoViewクラスはrequire.Uをサポートしていないため、オーディオストリームデータをJavaレイヤーのAudioTrackクラスで再生する必要があります。
は真ではありません。私の答えを見てください。 –
不要サードパーティのライブラリ:私の知る限り
mVideoView.setVideoURI(Uri.parse("")); // set video source
mVideoView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
MediaPlayer.TrackInfo[] trackInfoArray = mp.getTrackInfo();
for (int i = 0; i < trackInfoArray.length; i++) {
// you can switch out the language comparison logic to whatever works for you
if (trackInfoArray[i].getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO
&& trackInfoArray[i].getLanguage().equals(Locale.getDefault().getISO3Language()) {
mp.selectTrack(i);
break;
}
}
return true;
}
});
- オーディオトラックが正しく認識させるために3文字のISO 639-2でエンコードする必要があります。
あなたはそれらのオーディオトラックをエンコードする方法を教えてください –
ffmpegは良い場所です –
あなたはオーディオトラックが3文字のiso 639-2でエンコードされるべきだと書いています。それが何であるか説明できますか? –
- 1. HTML5ビデオの複数のオーディオトラック
- 2. mediaelement.js WPプラグインの複数のオーディオトラック?
- 3. mp4コンテナ内のオーディオトラックの数
- 4. ffmpegの1つのソースからの複数のオーディオトラック
- 5. 複数のオーディオトラックがhtml5のビデオmp4のため
- 6. Android:VideoViewとIntent.ACTION_VIEWの違い
- 7. 1つのビデオトラックと複数のオーディオトラックを持つAVPlayer
- 8. 複数のオーディオトラックが同じアクティビティにあります
- 9. 複数のAVAssetTrackのオーディオタイプのAVURLAssetのオーディオトラックを切り替えます。
- 10. ウェブベースのビデオプレーヤー(オーディオトラック番号付き)
- 11. ビデオのオーディオトラックを置換する
- 12. オーディオトラックのエンコードを取得する
- 13. Android WebRTC - 会議用オーディオトラックの混在
- 14. プログラムで複数のオーディオトラックを1つのトラックにミックスする方法はありますか?
- 15. Xamarin android:VideoViewはSurfaceCreatedを呼び出さない
- 16. Androidでオーディオトラックが機能しない
- 17. Android:VideoView/MediaPlayerのメディア遅延/レイテンシを減らす方法はありますか?
- 18. ボタンを使ってオーディオトラックを開始し、オーディオトラックを停止するにはどうすればよいですか?
- 19. ffmpeg多言語のm2tsファイルでオーディオトラックを操作するコマンドライン
- 20. Windows 10のMediaPlaybackItemにビデオとオーディオトラックを追加する方法
- 21. Androidのオーディオトラック用MediaPlayerでwebvttファイルを使用する方法
- 22. VLCのオーディオトラック間にポーズを追加する
- 23. ExoPlayer - 2つのオーディオトラックを同時に再生する
- 24. 別のオーディオトラックが開始したら、1つのオーディオトラックを停止するにはどうすればよいですか? (テキストリンクのみ)
- 25. リアルタイム処理のためにビデオアセットのオーディオトラックの生データにアクセスする
- 26. オーディオレコードと再生ループバックバッファの問題、オーディオトラックにデータを書き込む際の問題
- 27. 複数のオーディオトラックを持つMKVファイルから言語コードを取得する最もエレガントな方法は何ですか?
- 28. 複数のパラメータを持つ複数の複数の文字列
- 29. Core Audioデコードするオーディオトラックを指定します
- 30. MediaCodec - 意図的にオーディオトラックに無音を追加する
これに関する進捗状況はありますか? – runor49
あなたは、選択したソリューションのコメントに基づいて進捗したようです。あなたは、あなたが上記の仕事をどのように達成したかを分かち合えますか – LostPuppy
これは古い疑問ですが、この問題に対する簡単な解決策があります。私の答えを見てください。 –