在iphone上录制声音为WAV

时间:2009-02-20 17:09:42

标签: iphone audio core-audio

我正在制作一款iPhone录音应用,需要将声音文件作为.wav提交给外部服务器。

从SpeakHere示例开始,我能够将声音录制为文件,但仅作为.caf

有人知道如何将其录制为wav吗?或者如何在iPhone上将.caf转换为.wav? (转换必须在手机上进行)

编辑:

我想知道在AudioFileCreateWithURL中使用kAudioFileWAVEType而不是kAudioFileCAFType是否可以做任何事情

2 个答案:

答案 0 :(得分:20)

是的,关键是kAudioFileWAVEType

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

在SpeakHere示例中从CAF更改为WAVE会导致录制为wav。我还在回放类中编辑相同的内容,并将文件名更改为Recording.wav

答案 1 :(得分:2)

看看libsndfile。它是一个很好用(包括Audacity)C库,用于处理大量文件格式。它支持读取和写入各种CAF和WAV格式。

CAF File structureWAV format非常相似。如果最坏的情况发生,那么转换不应该太难。

它将涉及获取音频数据块,并按原样复制到WAV文件中,并使用音频描述块中的信息为WAV文件添加等效的 fmt 子块。这是相当简单的字节复制。

但是,请注意(正如Eric指出的那样)存在许可问题,请参阅:Can the Libsndfile library be used on the iPhone iOS?