Grabación de audio para su uso por parte de una editorial
El BaseAudioDevice.startCapturer El método se invoca cuando el dispositivo de audio debe comenzar a capturar el audio que se va a publicar. El NoiseAudioDevice de este método inicia el capturer hilo que se ejecutará en la cola después de 1 segundo:
override fun startCapturer(): Boolean {
capturerStarted = true
capturerHandler?.postDelayed(capturer, capturerIntervalMillis)
return true
}
El capturer produce un búfer que contiene muestras de datos aleatorios (ruido blanco). A continuación, llama a la función writeCaptureData método del AudioBus objeto, que envía las muestras al bus de audio. El editor de la aplicación utiliza las muestras enviadas al bus de audio para
transmitirlas como audio en la transmisión publicada. Entonces, si la captura sigue en curso (si la aplicación está publicando), el capturer El hilo se ejecuta de nuevo al cabo de otro segundo:
private val capturer: Runnable = object : Runnable {
override fun run() {
capturerBuffer?.rewind()
val rand = Random()
rand.nextBytes(capturerBuffer?.array())
audioBus.writeCaptureData(capturerBuffer, SAMPLING_RATE)
if (capturerStarted && !audioDriverPaused) {
capturerHandler?.postDelayed(this, capturerIntervalMillis)
}
}
}
El AudioDevice incluye otros métodos implementados por la clase NoiseAudioDevice clase. Sin embargo, este ejemplo no realiza ninguna acción de interés en estos métodos, por lo que no se incluyen en esta guía.
Controlador de audio personalizado
Aprenda a utilizar un controlador de audio personalizado para personalizar el audio de la transmisión del editor y del suscriptor. Utilizará el controlador de audio personalizado cuando desee iniciar y detener el audio reproducir su propio archivo de audio y hacer cualquier cosa fuera del comportamiento predeterminado del chat de vídeo en directo proporcionado por el SDK.