2013-04-22 5 views
6

Kann ich zwei Instanzen der Android MediaRecorder-Klasse gleichzeitig ausführen? Zum BeispielAndroid: Zwei Instanzen von Media Recorder zur gleichen Zeit

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

ich diesen Fehler, wenn die zweite Start() Ich möchte nur wissen, genannt wird, ist es, weil es bereits ein sogenannter Startvorgang ist, oder es ist ein anderes Problem. Auch die zweite Medienrecorder-Instanz wird initialisiert und in einem separaten Thread verwendet.

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. 

Antwort

0

nach documentation:

Neben unnötigen Ressourcen (wie Speicher und Instanzen von Codecs) gehalten wird, Scheitern dieser Methode sofort anrufen, wenn ein MediaRecorder Objekt nicht mehr benötigt wird kann auch dazu führen, Akkuverbrauch für mobile Geräte, und Aufnahmefehler für andere Anwendungen, wenn keine mehrere Instanzen des gleichen Codecs sind unterstützt auf einem Gerät. Auch wenn mehrere Instanzen desselben Codecs unterstützt werden, ist möglicherweise eine Leistungseinbuße zu erwarten, wenn nicht erforderlich ist, wenn mehrere Instanzen gleichzeitig verwendet werden.

Meine erfolglosen Versuche führten auch zu nichts.

Verwandte Themen