MediaMuxer を使用してオーディオ データとラジオ データをミックスします。データは 2 つのエンコーダーからのもので、フローは正しく、出力を取得して再生します。しかし、MediaMuxer は、エラーのために writeSampleData のときに失敗した可能性があります。
E/MPEG4Writer: timestampUs 21932611 < lastTimestampUs 22055361 for Video track
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: FATAL EXCEPTION: MediaMuxer
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: Process: org.cocos2dx.simplegame, PID: 20089
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: java.lang.IllegalStateException: writeSampleData returned an error
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: at android.media.MediaMuxer.nativeWriteSampleData(Native Method)
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: at android.media.MediaMuxer.writeSampleData(MediaMuxer.java:334)
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: at com.duapps.durecorder.muxer.DuMediaMuxer.handleMessage(DuMediaMuxer.java:53)
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: at android.os.Looper.loop(Looper.java:136)
10-14 14:23:41.580 20089-20230/org.cocos2dx.simplegame E/AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:61)
MPEG4Writer が表示されます. エラーの根本原因はビデオのタイムスタンプです. MediaMuxer が IllegalState に陥りました. 多くのテストを行った後、ビデオとオーディオのタイムスタンプの両方でエラーが発生する可能性があり、オーディオのサンプルレートを変更すると、再発率が変化することがわかりました。
オーディオまたはラジオのみを録音すると、エラーが再発することはありません。
誰かが私に何か提案をしてもらえますか?