2009-08-07 12 views
13

Qual è il formato audio consigliato per archiviare e riprodurre effetti audio audio brevi (2-3 secondi) su iPhone o iToouch?Qual è il miglior formato per gli effetti sonori su iPhone

La documentazione SDK audio iPhone indica che l'iPhone supporta l'audio in diversi formati - tuttavia ci sono svantaggi a ciascuno:

  • MP3: Questo è altamente compresso, ma anche il formato di codifica di alta qualità che preserva la ricchezza della musica e della voce parlata. Tuttavia, solo un singolo stream mp3 può essere riprodotto contemporaneamente sull'iPhone perché richiede l'uso del decodificatore hardware. Ciò esclude l'mp3 come formato per effetti sonori, poiché interromperanno la musica di sottofondo e/o la musica dell'utente riprodotta.
  • WAV: L'iPhone supporta solo i file WAV se sono codificati PCM e non richiedono alcun codec di compressione. Mentre WAV supporta diverse frequenze di campionamento e profondità di bit, risulta in file molto grandi (180k/sec per audio 16-bit/44.1kHz/stereo). Le grandi dimensioni diventano proibitive quando si hanno molti effetti da riprodurre rapidamente.
  • AIFF: Ha problemi simili ai file WAV - non è chiaro se sono supportati tutti i codec di compressione. Si suppone che la compressione di Apple Lossless sia supportata, ma non riesco a trovare alcun strumento in grado di generare AIFF utilizzando questa compressione.
  • Personalizzato: È possibile utilizzare le API di basso livello di iPhone per riprodurre l'audio da qualsiasi sorgente. Ma questo sembra eccessivo per riprodurre un semplice effetto sonoro in un gioco. Certamente non voglio scrivere il mio livello audio e codificatore/decodificatore solo per questo.

Qualsiasi raccomandazione sarebbe apprezzata ... sarebbe anche utile se qualcuno potesse consigliare uno strumento a prezzi ragionevoli per l'elaborazione dell'audio che può generare il formato raccomandato. Grazie.

risposta

10

È possibile utilizzare IMA4 file compressi, che forniscono un 1: 4 di compressione da file WAV e vengono decompressi dall'hardware (li si può caricare con una AVAudioPlayer).

Come per l'MP3, è possibile riprodurre un solo file contemporaneamente in quel formato, ecco perché non è consigliato per gli effetti sonori in cui si potrebbero avere più di uno allo stesso tempo.

Sto utilizzando i file IMA4 con OpenAL, quindi li sto decomprimendo manualmente con un codice basato su this post.

+1

non essere un Debby Downer, ma è molto facile riprodurre più mp3 contemporaneamente. Basta usare più di un'istanza di AVAudio Player. –

+1

Almeno quando ho postato questa risposta, questo non era il caso. 'AVAudioPlayer' permetteva di riprodurre un singolo file MP3 in una sola volta, mentre un secondario riprodotto mostrava un ritardo significativo e diminuiva. Direi che questo è ancora il caso, inoltre, per i giochi, in cui è necessario un controllo preciso su quando inizia il suono. – pgb

2

Ho avuto abbastanza fortuna con i file in formato CAF anche se WAV si avvicina alle dimensioni.

Per quanto riguarda gli strumenti, Audacity è gratuito e ragionevolmente funzionale. Uso principalmente Amadeus Pro (circa US $ 40). Abbastanza decente e genera tutti i formati audio supportati da iPhone (inclusi MP3, AIFF, WAVE, AAC e CAF). Una buona caratteristica è che supporta i plug-in AudioUnit e VST in modo da poter aggiungere SoundFX.

Ho anche sentito cose positive su Fission (di Rogue Amoeba) ma non l'ho ancora usato. I loro altri prodotti audio sono piuttosto solidi.

Il framework AVAudioPlayer è abbastanza adatto per riprodurre brevi clip, ma è possibile che si desideri pre-caricare i suoni (chiamare prepareToPlay) e tenerli in giro se è possibile risparmiare la memoria.

+0

Pensavo che CAF fosse solo un formato contenitore e che potesse contenere MP3, IMA4, AIFF, ecc. Mi sbaglio? – mahboudz

+0

I file CAF possono contenere altri tipi di formati di file come blocchi, ma hanno la propria intestazione, metadati e layout di traccia a 64 bit. Hai ancora bisogno di uno strumento di conversione in grado di importare gli altri tipi e scrivere in CAF. Ecco le specifiche: http://devworld.apple.com/documentation/MusicAudio/Reference/CAFSpec/CAF_overview/CAF_overview.html – Ramin

0

L'unico formato che sono riuscito a far funzionare è CAF.È anche quello nella maggior parte degli esempi di codice di Apple. Se si utilizzano effetti sonori brevi, le dimensioni non costituiranno un problema.

1

Dai un'occhiata all'utilità della riga di comando afconvert sul tuo Mac. Lo fa molte conversioni tra diversi formati audio, e se avete un sacco di suoni, è possibile creare script le conversioni ...

Io uso SoundToolbox e AVAudioPlayer con i suoni per lo più in PCM lineare non compresso, creato in GarageBand.

SoundToolbox è ideale per la riproduzione di un breve po ' "Boing" o "click" o altri suoni che si attiva per giocare e non si preoccupano di fermarsi o di fare scherzi con il loro volume ecc

Se si desidera interrompere un suono o sapere se il suono è terminato, AVAudioToolbox è bello. Se vuoi suonare suoni con controllo sui componenti sinistro e destro del suono, allora guarda su OpenAL.

Se non lo hai già fatto, leggi il iPhone Application Programming Guide di Apple sull'assistenza audio.

Se il suono è importante per la tua app, potresti voler sfruttare alcune delle funzioni a tua disposizione per pochissimo lavoro.

0

Ho utilizzato il formato Microsoft ADPCM WAV che comprime da 3,25: 1 (alta qualità) a 3,98: 1 (qualità predefinita). Inoltre, riduco la frequenza di campionamento a 32000 o persino 22050 a seconda del suono. Non è necessario salvare alcuni file in stereo - mono riduce anche la dimensione del file piuttosto bene.

Per la musica di sottofondo, l'mp3 va bene.

Problemi correlati