Vah*_*ron 28 audio video android
我有一些.MP4视频文件必须在Android活动的VideoView中读取.这些视频包括几个音轨,每个音轨对应一种用户语言(例如:英语,法语,日语......).
我找到任何帮助或文档来提供这样的功能时遇到了意外的麻烦.我目前能够加载视频并使用MediaController在VideoView中播放,但不能更改音轨.
我不确定Android SDK提供了任何简单的方法来做到这一点,这让我对如何解决我的问题毫无头绪.我正在考虑提取每个音轨,根据语言将我想要的音频加载到MediaPlayer中,然后一起播放音频和视频.但我担心可能会出现一些同步问题并阻止我这样做.
如果你有任何线索,任何建议,以帮助我开始这个问题,你非常欢迎.
不需要第 3 方库:
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;
}
});
Run Code Online (Sandbox Code Playgroud)
据我所知 - 音轨应以 3 个字母的 ISO 639-2 编码,以便正确识别。
还没有测试过自己,但Vitamio库似乎支持多个音轨(以及其他有趣的功能)。它与 Android 中的类 API 兼容VideoView
。
可能您必须使用Vitamio VideoView.setAudioTrack()
来设置音轨(例如基于区域设置)。有关详细信息,请参阅Vitamio API 文档。
归档时间: |
|
查看次数: |
4985 次 |
最近记录: |