如何从iPhone上的caf文件中访问/提取原始(无头)音频数据?

时间:2010-10-20 21:44:33

标签: iphone avaudiorecorder

我正在开发一个项目,要求我将原始无头ulaw或线性pcm数据发送到服务器。

我正在使用AVAudioRecorder,我可以很容易地将音频文件保存到手机中,但问题是无论我尝试做什么,它们都被包裹在一个caf文件中或加盖某种标题。

我的理解是,caf文件只是原始音频数据的包装文件,而且这种音频数据可以是各种格式,包括线性pcm和ulaw。

所以我的问题是,如何在没有开始使用caf包装的情况下生成原始音频文件(即只有无头的原始音频填充到文件中),或者我是否记录了包含原始Ulaw或线性pcm音频的caf数据,我怎样才能轻松进入并从caf文件中提取原始音频数据,并将其他所有内容留下。

2 个答案:

答案 0 :(得分:1)

如果您使用音频队列API进行录制,而不是AVAudioRecorder,您将可以访问原始PCM样本缓冲区,并可以将其写入平面文件,以便以后发送到您的服务器。

答案 1 :(得分:1)

如果CAF中的音频数据已经采用您需要的格式,我将使用AudioFile API获取caf文件的音频数据,并将其写入无头/ RAW文件,然后再上传到我的服务器。 / p>

如果您需要转换CAF的数据,请改用ExtAudioFile API。无论哪种方式,都很简单。

http://developer.apple.com/library/ios/#documentation/MusicAudio/Reference/AudioFileConvertRef/Reference/reference.html

http://developer.apple.com/library/ios/#documentation/MusicAudio/Reference/ExtendedAudioFileServicesReference/Reference/reference.html