Failed to stop the muxer

使用MediaProjection + MediaCodec + MediaMuxer  录制手机屏幕保存到本地mp4文件。

停止录制时调用 meidiaMuxer.stop() 报错:Failed to stop the muxer。

这是调用 mediaMuxer.addTrack 的时机不对,应该在MediaCodec调用dequeueOutputBuffer返回MediaCodec.INFO_OUTPUT_FORMAT_CHANGED时设置。

具体代码:

if (index == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
    val newFormat = codec.outputFormat
    encodeVideoTrackIndex = mMediaMuxer?.addTrack(newFormat)!!
    mMediaMuxer?.start()
} 

猜你喜欢

转载自blog.csdn.net/u010926168/article/details/127068427