如何使用MediaCodec和MediaMuxer录制视频和音频

7
我能够使用MediaCodec和MediaMuxer录制(编码)视频。接下来,我需要处理音频部分,并使用MediaCodec和MediaMuxer混合音频和视频。
我遇到了两个问题:
1.如何使用MediaCodec编码音频。我需要在单独的线程中对音频和视频进行编码吗?
2.如何将音频和视频数据传递给MediaMuxer(因为writeSampleData()方法一次只能接收一种类型的数据)?
我参考了MediaMuxerTest,但它使用的是MediaExtractor。我需要使用MediaCodec,因为视频编码是使用MediaCodec完成的。如果我有错,请纠正我。
由于这些新API没有适当的文档可用,任何建议或建议都将非常有帮助。
注意:
1.我的应用程序针对API 18+(Android 4.3+)。
2.我已经参考了Grafika进行视频编码。

2
有代码示例吗?我还需要添加音频。 - TatiOverflow
请参考此链接:**AudioVideoRecordingSample**。 - Ali
1个回答

5
  1. 不需要为音频创建单独的线程,只需使用两个独立的 MediaCodec 实例即可。

  2. writeSampleData 的第一个参数是 trackIndex,它允许您指定每个数据包对应的轨道。通过分别运行 addTrack 两次,一次为每个轨道,您可以获得两个不同的轨道 ID。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接