我正在开发一款iPhone录音应用程序,需要将声音文件提交为.wav格式到外部服务器。
从SpeakHere示例开始,我能够将声音记录为文件,但只能以.caf格式。
是否有人知道如何以.wav格式进行记录?或者如何在iPhone上将.caf格式转换为.wav格式?(转换必须在手机上进行)
编辑:
我想知道在AudioFileCreateWithURL中使用kAudioFileWAVEType而不是kAudioFileCAFType是否可行。
我正在开发一款iPhone录音应用程序,需要将声音文件提交为.wav格式到外部服务器。
从SpeakHere示例开始,我能够将声音记录为文件,但只能以.caf格式。
是否有人知道如何以.wav格式进行记录?或者如何在iPhone上将.caf格式转换为.wav格式?(转换必须在手机上进行)
编辑:
我想知道在AudioFileCreateWithURL中使用kAudioFileWAVEType而不是kAudioFileCAFType是否可行。
是的,关键是 kAudioFileWAVEType
AudioFileCreateWithURL (
audioFileURL,
kAudioFileWAVEType,
&audioFormat,
kAudioFileFlags_EraseFile,
&audioFileID
);
在SpeakHere示例中从CAF更改为WAVE会导致录音变成wav格式。我还在播放类中进行了相同的更改,并将文件名更改为Recording.wav。
CAF文件结构和WAV格式相当相似。如果情况最坏,转换不应该太难。
这将涉及获取音频数据块,并将其原样复制到WAV文件中,并使用音频描述块中的信息添加等效fmt 子块以进行WAV文件。这是相当简单的字节复制。
然而,请注意(正如Eric指出的那样),存在许可问题,请参见:Libsndfile库可在iPhone iOS上使用吗?