我正在制作一个应用程序来录制视频,而不使用默认的录像机。为了制作视频,我使用了 MediaMuxer。音频和视频录制在不同的线程上完成。
当我停止录制时,应用程序随机崩溃,并且日志显示
MPEG4Writer(23890): There are no sync frames for video track
java.lang.IllegalStateException:无法停止多路复用器
12-24 15:26:36.736: E/AndroidRuntime(23890): FATAL EXCEPTION: TextureMovieEncoder
12-24 15:26:36.736: E/AndroidRuntime(23890): Process: com.example.cameradummy, PID: 23890
12-24 15:26:36.736: E/AndroidRuntime(23890): java.lang.IllegalStateException: Failed to stop the muxer
12-24 15:26:36.736: E/AndroidRuntime(23890): at android.media.MediaMuxer.nativeStop(Native Method)
12-24 15:26:36.736: E/AndroidRuntime(23890): at android.media.MediaMuxer.stop(MediaMuxer.java:226)
12-24 15:26:36.736: E/AndroidRuntime(23890): at com.example.cameradummy.VideoEncoderCore.closeMuxer(VideoEncoderCore.java:421)
当我尝试在不添加音轨的情况下录制视频时,它工作正常,但是当音频和视频轨道都添加到多路复用器时,它会出现这个问题。
我指的是用于视频录制的grafika cameracaptureactivity
我无法确定问题是由于线程还是某些同步问题引起的。有人可以帮我解决这个问题。