2009-08-07 9 views
13

¿Cuál es el formato de audio recomendado para almacenar y reproducir efectos de sonido de audio cortos (2-3 segundos) en el iPhone o iToouch?¿Cuál es el mejor formato para efectos de sonido en iPhone

La documentación del SDK de audio iPhone indica que el iPhone es compatible con audio en varios formatos - sin embargo, hay algunas desventajas para cada uno:

  • MP3: Este es un muy comprimido, sino también el formato de codificación de alta calidad que preserva la riqueza de la música y la voz hablada. Sin embargo, solo se puede reproducir una sola transmisión de mp3 a la vez en el iPhone porque requiere el uso del decodificador de hardware. Esto excluye a los mp3 como un formato para efectos de sonido, ya que interrumpirán la música de fondo y/o cualquier música de usuario que se esté reproduciendo.
  • WAV: El iPhone solo es compatible con archivos WAV si están codificados en PCM y no requieren códecs de compresión. Si bien WAV admite muchas frecuencias de muestreo y profundidades de bits diferentes, resulta en archivos muy grandes (180 k/s para audio de 16 bits/44.1 kHz/estéreo). El gran tamaño se vuelve prohibitivo cuando tienes muchos efectos para jugar rápidamente.
  • AIFF: Tiene problemas similares a los archivos WAV: no está claro si se admiten los códecs de compresión. Supuestamente, la compresión Apple Lossless es compatible, pero no puedo encontrar ninguna herramienta que pueda generar AIFF al usar esta compresión.
  • Personalizado: Puede usar las API de bajo nivel de iPhone para reproducir su propio audio desde cualquier fuente. Pero esto parece excesivo para jugar un simple efecto de sonido en un juego. Ciertamente no quiero escribir mi propia capa de audio y codificador/decodificador solo para esto.

Cualquier recomendación sería apreciada ... también sería útil si alguien pudiera recomendar una herramienta a un precio razonable para procesar audio que pueda generar el formato recomendado. Gracias.

Respuesta

10

Puede usar archivos comprimidos IMA4, que proporcionan una compresión 1: 4 de archivos WAV y se descomprimen por hardware (puede cargarlos con AVAudioPlayer).

En cuanto a MP3, solo puede reproducir un archivo simultáneamente en ese formato, es por eso que no se recomienda para efectos de sonido donde podría tener más de uno al mismo tiempo.

Estoy usando archivos IMA4 con OpenAL, así que los estoy descomprimiendo manualmente con un código basado en this post.

+1

para no ser un Debby Downer, pero es muy fácil reproducir múltiples mp3 al mismo tiempo. Solo use más de una instancia de AVAudio Player. –

+1

Al menos cuando publiqué esta respuesta, este no fue el caso. 'AVAudioPlayer' solo permitía reproducir un solo archivo MP3 a la vez, mientras que un segundo reproducido mostraba un retraso significativo, y se reducía. Supongo que este es todavía el caso, además de los juegos, donde se necesita un control preciso sobre cuándo comienza el sonido. – pgb

2

He tenido muy buena suerte con los archivos de formato CAF aunque WAV tiene un tamaño similar.

En cuanto a las herramientas, Audacity es gratuito y razonablemente funcional. Uso principalmente Amadeus Pro (alrededor de US $ 40). Bastante decente y genera todos los formatos de audio compatibles con iPhone (incluidos MP3, AIFF, WAVE, AAC y CAF). Una buena característica es que es compatible con los plug-ins AudioUnit y VST para que pueda agregar SoundFX.

También he oído cosas buenas sobre Fisión (por Rogue Amoeba) pero no las he usado realmente. Sus otros productos de audio son bastante sólidos.

La estructura AVAudioPlayer es bastante buena para reproducir clips cortos, pero es posible que desee precargar los sonidos (llame al prepareToPlay) y consérvelos si puede conservar la memoria.

+0

Pensé que CAF era solo un formato contenedor, y podría contener MP3, IMA4, AIFF, etc. ¿Estoy equivocado? – mahboudz

+0

Los archivos CAF pueden contener otros tipos de formatos de archivo como fragmentos, pero tienen su propio encabezado, metadatos y diseño de pista de 64 bits. Aún necesita una herramienta de conversión que pueda importar los otros tipos y escribir en CAF. Aquí está la especificación: http://devworld.apple.com/documentation/MusicAudio/Reference/CAFSpec/CAF_overview/CAF_overview.html – Ramin

0

El único formato que he podido obtener para trabajar es CAF.También es el que está en la mayoría de los ejemplos de código de Apple. Si usa efectos de sonido cortos, el tamaño no será un problema.

1

Eche un vistazo a la utilidad de línea de comandos de afconvert en su Mac. Hace muchas conversiones entre diferentes formatos de audio, y si tiene muchos sonidos, puede escribir las conversiones ...

Uso SoundToolbox y AVAudioPlayer con sonidos principalmente en PCM lineal sin comprimir, creado en GarageBand.

SoundToolbox es ideal para jugar un poco corto "Boing" o "clic" u otros sonidos que se desencadenan a jugar y que no se preocupan por parar o jugar con su volumen, etc.

Si desea Detener un sonido de reproducción o saber si el sonido ya está sonando, AVAudioToolbox es agradable. Si quieres reproducir sonidos con control sobre los componentes izquierdo y derecho del sonido, mira OpenAL.

Si aún no lo ha hecho, lea el iPhone Application Programming Guide de Apple en la compatibilidad de sonido.

Si el sonido es importante para su aplicación, es posible que desee aprovechar algunas de las funciones disponibles para usted por muy poco trabajo.

0

He estado usando el formato Microsoft ADPCM WAV que comprime desde 3.25: 1 (alta calidad) a 3.98: 1 (calidad predeterminada). También reduzco la frecuencia de muestreo a 32000 o incluso a 22050 dependiendo del sonido. No es necesario guardar algunos archivos en estéreo, el mono también reduce el tamaño del archivo bastante bien.

Para música de fondo mp3 está bien.

Cuestiones relacionadas