Android:同时有两个Media recorder实例

Tal*_*lik 6 multithreading android record mediarecorder

我可以同时运行两个Android MediaRecorder类实例吗?例如

public MediaRecorder mrec1 ;
public MediaRecorder mrec2 ;


mrec1.setCamera(mCamera);
mrec1.setPreviewDisplay(surfaceHolder.getSurface());
mrec1.setVideoSource(MediaRecorder.VideoSource.CAMERA)
.
.
.
.
mrec2.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec2.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mrec2.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
.
.  
.
.
mrec1.prepare();
mrec2.prepare();
mrec1.start();
mrec2.start();
Run Code Online (Sandbox Code Playgroud)

我在调用第二个start()时遇到此错误我只是想知道它是因为已经调用了启动进程或者还有其他一些问题.此外,第二个媒体记录器实例被初始化并在单独的线程中使用.

04-22 11:08:45.869: E/MediaRecorder(7742): start failed: -2147483648
04-22 11:08:45.869: W/dalvikvm(7742): threadid=9: thread exiting with uncaught exception  (group=0x40018578)
04-22 11:08:45.869: E/AndroidRuntime(7742): FATAL EXCEPTION: Thread-10
04-22 11:08:45.869: E/AndroidRuntime(7742): java.lang.RuntimeException: start failed.
Run Code Online (Sandbox Code Playgroud)

Yaz*_*llo 2

根据文件

除了占用不必要的资源(例如内存和编解码器实例)之外,如果不再需要 MediaRecorder 对象而无法立即调用此方法,还可能导致移动设备持续消耗电池,并且如果不使用 MediaRecorder 对象,则可能会导致其他应用程序录制失败。设备支持同一编解码器的多个实例。即使支持同一编解码器的多个实例,当同时使用不必要的多个实例时,也可能会出现一些性能下降。

我的不成功尝试也一无所获。