Android的:在同一时间媒体记录的两个实例(Android: Two instances of

2019-08-31 17:16发布

我可以在同一时间运行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();

我得到当第二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.

Answer 1:

根据文档 :

除不必要的资源(如存储器和编解码器的实例)被保持,不调用此方法,如果立即MediaRecorder对象不再需要也可能导致连续的电池消耗用于移动设备, 并记录失败用于如果其他应用程序不在相同的编解码的多个实例被支撑在设备上。 即使同一编解码器的多个实例的支持,当不需要的多个实例在同一时间使用的一些性能下降可能。

我尝试失败导致没有任何。



文章来源: Android: Two instances of Media recorder at same time