2013-04-22 14 views
6

Posso eseguire due istanze della classe Android MediaRecorder contemporaneamente? Per esempioAndroid: due istanze del registratore multimediale allo stesso tempo

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(); 

ottengo questo errore quando il secondo start() viene chiamato voglio solo sapere è perché c'è già un processo di avvio chiamato o c'è qualche altro problema. Anche la seconda istanza del media recorder è inizializzata e utilizzata in un thread separato.

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. 

risposta

0

secondo le documentation:

Oltre alle risorse non necessarie (come la memoria e le istanze di codec) che si terrà, il mancato chiamare questo metodo immediatamente se non è più necessario un oggetto MediaRecorder può anche portare al consumo di batteria continua per dispositivi mobili, e alla registrazione non riuscita per altre applicazioni se nessuna istanza multipla dello stesso codec è supportato su un dispositivo. Anche se sono supportate più istanze dello stesso codec , è possibile che si verifichi un calo delle prestazioni quando si utilizzano contemporaneamente più istanze multiple non necessarie allo .

Anche i tentativi infruttuosi non hanno portato a nulla.

Problemi correlati