GNU/Linux >> Tutoriales Linux >  >> Linux

ALSA:formas de evitar el agotamiento del altavoz

Supongo que este código se ejecuta en un bucle cerrado y está destinado a bloquearse en snd_pcm_writen() . No se proporciona la frecuencia de muestreo; Supongo que 48kHz ya que todos los números se dividen muy bien.

Lo que creo que va aquí es lo siguiente:

  • snd_pcm_write() no garantiza escribir todos los marcos provistos (el valor de retorno solo se verifica en busca de condiciones de error). A juzgar por el registro de snd_pcm_avail() de hecho, está consumiendo avail_min o 144 marcos en cada uno. Esto es 3 ms de audio.
  • Suponiendo que el audio no se está ejecutando en este punto, después de dos escrituras, la cantidad de fotogramas en el búfer es igual a start_threshold - en 288 muestras; comienza la salida de audio
  • llamadas a printf() block, y me parece recordar que snd_pcm_avail() tiene que sincronizarse con el hardware de salida de audio y también puede bloquearse. Dado que ahora está 6 ms por delante de la reproducción, es muy posible que el búfer se esté agotando durante el tiempo de la tercera llamada de snd_pcm_writen()

En resumen, no deberías llamar al printf() en este punto, y probablemente necesite compensar el hecho de que snd_pcm_writen() no está consumiendo todos los marcos en pSpeakerBuf


Linux
  1. LosslessCut:herramienta súper rápida para recortar / cortar video y audio

  2. Audacious:un reproductor de audio avanzado para Linux

  3. Tracktion 7:una estación de trabajo de audio digital con todas las funciones para creadores de música

  4. Las 10 mejores alternativas de Audacity para la grabación y edición de audio

  5. Sayonara Player:reproductor de audio ligero y rápido para Linux

Los comandos FFmpeg más útiles para la conversión de audio y video

Cortador de audio fácil para Ubuntu?

15 formas de utilizar el comando Watch de Linux para las actividades cotidianas

Las 20 mejores estaciones de trabajo de audio digital (DAW) y software de DJ para Linux

15 mejores sintetizadores Linux para producción de audio digital

Cómo evitar que SSH se desconecte si ha estado inactivo por un tiempo