我进行了一些视频渲染,当MediaMuxer达到文件大小限制时,它崩溃了
mMuxer.writeSampleData(muxervideoTrackIndex, encodedData, info);
使用
java.lang.IllegalStateException: writeSampleData returned an error
在发生这种情况之前,我得到
W MPEG4Writer: Recorded file size is approaching limit 4294967295bytes
W MPEG4Writer: No FileDescripter for next recording
W MPEG4Writer: Recorded file size exceeds limit 4294967295bytes
我查看了源,并假设它在内部关闭,因此状态不再正确。但是,Muxer不提供任何返回或回调选项。由于我想用EOS信号终止整个操作,因此我想以某种方式通知已达到极限。
由于音频帧的长度与视频帧的长度不同,因此我需要稍加注意,以便我可以终止视频,但在必要时仍可以添加丢失的音频帧。
我该如何实现?