Pregunta

Estoy haciendo una aplicación para la reproducción multimedia que consigue dado PCM lineal sin comprimir (über prima) de audio desde un decodificador de terceros, pero me estoy volviendo loco cuando se trata de simplemente reproducir el formato de audio más sencilla que puedo imaginar ..

La aplicación final será obtener los datos PCM progresivamente a medida que el archivo de origen transmite desde un servidor, por lo que se veía en las colas de audio inicialmente (ya que puedo parecer sólo le dan bytes sobre la marcha), pero que resultó ser mindfudge - especialmente desde propio código de muestra de audio cola de Apple parece ir en un viaje de campo mágico de OpenGL y encapsulación innecesaria ..

Terminé usando una AVAudioPlayer durante la creación de un prototipo (no streaming); Actualmente creo una cabecera de las ondas y añadirlo a principios de los datos PCM para obtener AVAudioPlayer la acepta o no (ya que no puede tener PCM en bruto)

Es evidente que de nada sirve para la transmisión (WAVE establece toda la longitud del archivo en la cabecera, por lo que los datos no se pueden añadir en-The-Go) ..

.. esencialmente: ¿hay alguna manera dar sólo algunos bytes iPhone OS PCM y tienen que jugar ellos

?
¿Fue útil?

Solución

Usted debe revisar el código AudioQueue. Una vez que tira de lejos todas las impertinencias que debe tener alrededor de 2 páginas de código, además de una devolución de llamada en la que se puede suministrar el PCM en bruto. Esta devolución de llamada también es sincrónico con el bucle principal, por lo que ni siquiera tiene que preocuparse de bloqueo.

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