Pregunta

Podría alguien explicarme cómo encaja en OpenAL con el esquema de sonido en el iPhone?

Parece que hay API a diferentes niveles para el manejo de sonido. Los de más alto nivel son bastante fáciles de entender.

Pero mi entendimiento se pone turbia hacia el fondo. Hay Core Audio, Audio Units, OpenAL.

¿Cuál es la conexión entre estos? OpenAL es el substrato, sobre el que descansa Core Audio (que contiene como uno de sus objetos de nivel inferior Audio Units)?

No parece OpenAL para ser documentado por Xcode, sin embargo, puede ejecutar el código que utiliza sus funciones.

¿Fue útil?

Solución

Esto es lo que he descubierto:

El sustrato es Core Audio. En concreto, Audio Units.

Así Audio Units formar la capa de base, y algún marco de bajo nivel se ha construido en la parte superior de esta. Y todo el caboodle se denomina Core Audio.

OpenAL es una API multiplataforma - los creadores están tratando de reflejar la portabilidad de OpenGL. Unas pocas empresas están patrocinando OpenAL, incluyendo Creative Labs y Apple!

Así que Apple ha proporcionado esta API, básicamente, como un envoltorio fino sobre Core Audio. Estoy adivinando esto es permitir a los desarrolladores para tirar sobre el código fácilmente. Se advirtió, se trata de una aplicación incompleta, así que si quieres OpenAL para hacer algo que Core Audio puede hacer, lo hará. Pero por lo demás no lo hará.

Por Tipo de contrario a la intuición - sólo mirar a la fuente, que parece como si OpenAL es de nivel inferior. No es así!

Otros consejos

Core Audio abarca una gran cantidad de cosas, tales como la lectura y escritura de varios formatos de archivo, la conversión entre codificaciones, tirando de los marcos de las corrientes, etc. Gran parte de esta funcionalidad se recoge como la "Caja de herramientas de audio". Core Audio también ofrece múltiples APIs para el procesamiento de flujos de audio, para la reproducción, captura, o ambos. El nivel más bajo es uno Audio Units, que trabaja con audio sin comprimir (PCM) y tiene algunas buenas cosas para la aplicación de efectos, mezcla, etc. Audio colas, implementado encima de Audio Units, son mucho más fácil, ya que trabajan con formatos comprimidos (no sólo PCM) y ahorro a partir de algunos de los retos de roscado. OpenAL se implementa también en lo alto Audio Units; usted todavía tiene que usar PCM, pero al menos la rosca no es de miedo. La diferencia es que, dado que no es de Apple, sus convenciones de programación son totalmente diferentes de Core Audio y el resto del IOS (el más obvio, es una API de empuje: si desea transmitir con OpenAL, usted sondea sus fuentes para ver si tienen agotaron sus tampones y empuje en los nuevos;. por el contrario, Audio colas y Audio Units son a base de tracción, en el que se obtiene una devolución de llamada cuando se necesitan nuevas muestras para la reproducción)

Nivel Superior, como hemos visto, es agradable cosas como Media Player y Fundación AV. Estos son mucho más fácil si sólo está reproduciendo un archivo, pero probablemente no van a darle la profundidad suficiente acceso si desea hacer algún tipo de efectos, procesamiento de señales, etc.

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