我是新来的Android开发人员。这是我的第一个问题。
我正在使用MediaExtractor
和MediaCodec
来播放带有视频和音频的mp4
文件。现在我得到一对视频提取器/编解码器和另一对音频提取器/编解码器,在两个独立的线程中实现。
我的问题是:我可以只使用一个带两个编解码器的提取器同步播放视频和音频吗?
如果是,该怎么办?当我使用extractor.selecttrack时,另一个不起作用......
非常感谢。
感谢大家的回答。我已经弄明白了。我弄错了提取器只能选择一个轨道。实际上,您可以选择多个轨道,而extractor.advance()将随后一次读取每个轨道。
答案 0 :(得分:2)
是的,你应该只使用一个提取器,每个轨道使用一个MediaCodec实例。
在这种情况下,您不应该使用MediaExtractor.selectTrack,您应该只读取所有曲目的数据包,并且对于返回的每个数据包,选择将其传递给哪个MediaCodec。
答案 1 :(得分:2)
感谢大家的回答。我已经弄明白了。我弄错了提取器只能选择一个轨道。实际上,您可以选择多个轨道,而extractor.advance()将随后一次读取每个轨道。