views:

2960

answers:

3

Hi

I am using the AVAudioRecorder class available with the 3.0 SDK to record audio in my app. I am successfully able to record to a caf/aiff file. But I would like to record to an mp3.

I tried changing some values in the settings dictionary but all I get is a blank file.

  1. Is it possible to record to an mp3 using AVAudioRecorder

  2. If not, how can I transfer the caf files from my app to a computer?

Thanks.

+1  A: 

From all I can find on the API documentation, you can't change the encoder. The only encoder settings I could find that you can change are:

AVEncoderAudioQualityKey;
AVEncoderBitRateKey;
AVEncoderBitDepthHintKey;

As for transferring the file, a typical approach would be to email the file.

Erich Mirabal
A 3-4 minute caf file would be about 30-40 MB! How can we email such a big file? How does the FourTrack app let user access the wav files using IP address? Thanks for the answer!
lostInTransit
doesn't bit rate imply something like MP3/AAC?
dlamblin
typically yes, but not just mp3, or even audio. http://en.wikipedia.org/wiki/Bit_rate#Bitrates_in_multimedia
Erich Mirabal
A: 

You'll have to include your own MP3 encoder. And you might not be able to do the encoding in real-time. Sad, but there it is.

Mark Bessey
what about m4a? The new voice memo app included with the 3.0 saves the memos in m4a format. So will the AVAudioRecorder also allow saving .m4a files? Thanks
lostInTransit
Mark Bessey
+1  A: 

See:

http://developer.apple.com/iphone/library/qa/qa2008/qa1615.html

IMA is a 4:1 format, which means it will compress to 25% of the original size. It's good enough for voice, but not ideal for music.

Lossless is great for music, but usually only gets 50%.

µLaw and aLaw are older formats that compress to 50%, but are much worse than Lossless.

I haven't used iLBC.

I'd bet you'll never see an MP3 encoder made available to third-party apps due to licensing issues.

lucius
iLBC is good for voice recording. It runs about 7MB for an hour of recording.
Harkonian