首页
学习
活动
专区
圈层
工具
发布

MediaPlayer
EN

Stack Overflow用户
提问于 2013-12-12 08:27:36
回答 1查看 700关注 0票数 1

我正在开发一个播放视频的android应用程序(使用视频视图)。该视频意味着有音乐(左和右)和叙事,但我想有选择地关闭在MediaPlayer的叙述轨道。

用mp4视频文件对3条音轨(右、左和旁白)进行编码,然后用deselectTrack()关闭记述音轨,这种方法是否正确?

从文档中我还不清楚MediaPlayer可以处理超过2条音频。

如果音轨被限制在2,那么当我想要播放叙事曲目时,同时运行两个媒体播放器(与seekTo()同步)是否有意义?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-12 13:29:37

很抱歉打破了你的泡沫但是..。

1)你对“轨道”所指的是什么有误解。一个音轨可以有多个频道(例如,立体声音轨有左右两个频道)。据我所知,立体声是目前安卓AudioTrack实现的范围。我还没有检查OpenSL实现是否比Java更广泛。

2)一次只能选择一个音轨,这样你就不可能在思考的过程中同时拥有背景和叙述。

3)只有在准备好的状态下才能选择音频音轨(即,在回放开始后不能选择)。文档提到这个限制并不理想,所以将来可能会改变。如果不是因为这个问题,你的目标可以通过流中编码的两个音轨来实现,一个是背景和叙述,另一个是背景。

您可能会发现很难同步两个MediaPlayer,但我没有尝试。也许这种方法对于您的情况是可以接受的,尽管预先警告过seekTo方法是不准确的。这取决于文件的编码。

如果我是你,我会尝试的是有两个完整的编码视频,一个有叙述,另一个没有。使用两个MediaPlayer,并让它们都做好准备。当您想要切换时,使用seekTo将正确的位置放在(或接近)所需的位置。这样你就不用担心同步了。但是,如果视频很大,这种方法可以使用更多的资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20538433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档