Domanda

Posso registrare più di un canale allo stesso tempo usando MediaRecorder o AudioloreCord? Quello che voglio è essere in grado di registrare sia MediaRecorder.Audiosource.Voice_Uplink e Voice_DownLink allo stesso tempo. Può essere in due file separati o allo stesso file con due canali. Ho provato a utilizzare due istanze separate di MediaRecorder. Ma solo il primo record. Il secondo dice che l'input non è disponibile. Ho anche provato a utilizzare un MediaRecorder e un Audiolorecord allo stesso tempo. Ancora una volta, entrambi funziona singolarmente ma quando AudioRecord arriva dopo che MediaRecorder è avviata, vengono visualizzati i seguenti errori.

05-21 03:40:42.735: E/AudioRecord(1322): Could not get audio input for record source 1
05-21 03:40:42.735: E/AudioRecord-JNI(1322): Error creating AudioRecord instance:     initialization check failed.
05-21 03:40:42.825: E/AudioRecord-Java(1322): [ android.media.AudioRecord ] Error code -20     when initializing native AudioRecord object.
.

Ho anche provato a mettere il secondo MediaRecorder su un nuovo thread. Di nuovo lo stesso risultato. Quindi questo mi fa meravigliare se è possibile registrare simultaneamente. Stavo anche pensando se posso utilizzare un audiolorecord con due canali impostato due ingressi separati da Voice_uplink e Voice_DownLinkLink ma non so come impostare le fonti se è possibile affatto possibile.

Grazie in anticipo

Modifica:

Risposta di Lucifero significa che Audiolorecord non può essere chiamato asincrono con più di un'istanza che funziona allo stesso tempo. Qualcuno conosce un modo in cui AUDIOURCE.Voice_Uplink e AUDIOURCE.Voice_DoVowLink può essere registrato allo stesso tempo? Forse usando un'unica istanza di AudioRecord con più canali?

È stato utile?

Soluzione

Secondo la mia conoscenza, Audioloreding è un metodo sincronizzato.Quindi non puoi usare due registrazioni contemporaneamente.

Quando il tuo codice sta andando per il secondo processo di registrazione, sta mostrando l'errore 05-21 03:40:42.735: E/AudioRecord(1322): Could not get audio input for record source 1 che è esclusivamente che il canale di registrazione è già occupato dal primo.

Tuttavia questo può per l'elaborazione parallelo di due filettatura in tali modi in cui il primo record di thread per un determinato periodo di tempo specifico.Quando il controllo passa due filettature secondarie, il primo filettatura interrompe la registrazione e la seconda registrazione inizia e viceversa.Ma come da dispositivo mobile diventerà più complesso.Quindi è meglio registrare un canale alla volta.

È possibile creare una coda di registrazione, che registrarne uno per uno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top