Pregunta

¿Puedo grabar más de un canal al mismo tiempo, ya sea utilizando MEDIARECORDOR o AUDIORECORD? Lo que quiero es poder registrar tanto mediarecorder.audioSource.Voice_uplink y Voice_Downtlink al mismo tiempo. Puede estar en dos archivos separados o al mismo archivo con dos canales. Intenté usar dos instancias separadas de Mediarecorder. Pero solo el primero registra. El segundo dice que la entrada no está disponible. También intenté usar un MEDIARECORDOR Y UN AUDIORECORD AL MISMO TIEMPO. Nuevamente, ambos funcionan individualmente, pero cuando AUDIORECORD viene después de que se inicia Mediarecorder, se muestran los siguientes errores.

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.

También intenté poner la segunda MEDIARECORDOR en un nuevo hilo. De nuevo el mismo resultado. Así que esto me hace preguntarme si es posible grabar simultáneamente. También estaba pensando si puedo usar un audioCord con dos canales, establece dos entradas separadas de voz_uplink y voz_downlink, pero no sé cómo configurar las fuentes si es posible en absoluto.

gracias de antemano

Editar:

La respuesta de Lucifer significa que Audiorecord no se puede llamar de forma asíncrona que tiene más de una instancia que se ejecute al mismo tiempo. ¿Alguien sabe una forma en que Audiource.Voice_UPLINK y AudioSource.Voice_DownLink se puede grabar al mismo tiempo? Tal vez usando una sola instancia de audioCord con múltiples canales?

¿Fue útil?

Solución

Según mi conocimiento, el audioCording es un método sincronizado.Por lo tanto, no puede usar HAC a dos grabaciones al mismo tiempo.

Cuando su código va por el segundo proceso de grabación, está mostrando el error 05-21 03:40:42.735: E/AudioRecord(1322): Could not get audio input for record source 1, lo que significa puramente que el canal de grabación ya está ocupado por primera.

Sin embargo, esto puede ser posible mediante el procesamiento paralelo de dos hilos de tal manera que el primer récord de hilos para la cantidad de tiempo específica.Cuando el control pasa dos segundos hilo, el primer hilo deja de grabar y la segunda se inicia la grabación y viceversa.Pero según el dispositivo móvil, esto será más complejo.Así que mejor registras un canal a la vez.

Puede crear una cola de grabación, que hará grabar uno por uno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top