Domanda

Sto facendo un app iPhone di registrazione che ha bisogno di inviare il file audio come WAV ad un server esterno.

A partire dall'esempio SpeakHere, sono in grado di registrare l'audio in un file, ma solo come .caf

Qualcuno sa come registrare come un wav, invece? O come convertire da .caf al .wav su iPhone? (La conversione deve avvenire al telefono)

EDIT:

Mi chiedo se qualcosa può essere fatto con l'utilizzo di kAudioFileWAVEType invece di kAudioFileCAFType in AudioFileCreateWithURL

È stato utile?

Soluzione

Yup, la chiave è kAudioFileWAVEType

AudioFileCreateWithURL (
            audioFileURL,
            kAudioFileWAVEType,
            &audioFormat,
            kAudioFileFlags_EraseFile,
            &audioFileID
        );

La modifica a WAVE dal CAF nell'esempio SpeakHere fa sì che la registrazione sia in formato WAV. Ho anche modificare la stessa cosa nella classe di riproduzione, e ha cambiato il nome del file per essere Recording.wav

Altri suggerimenti

Dai un'occhiata alla libsndfile . Si tratta di un ben utilizzati (anche per Audacity) libreria C per lavorare con un sacco di formati di file. Supporta lettura e scrittura di una varietà di formati CAF e WAV.

Il CAF File struttura e formato WAV sono abbastanza simili. Se il peggio arriva al peggio, la conversione non dovrebbe essere troppo difficile.

Si comporterebbe prendendo il blocco di dati audio, e la copia come è nel file WAV, e utilizzando le informazioni nella descrizione audio Chunk per aggiungere un equivalente fmt subchunk per il file WAV. E 'abbastanza semplice copia di byte.

Tuttavia, essere consapevoli (come Eric ha sottolineato) non ci sono problemi di licenza, consultare: può la biblioteca Libsndfile essere utilizzato su iPhone iOS?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top