2009-02-20 136 views
14

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

从SpeakHere例子开始,我能够录制声音文件,但只是作为

的.caf

有谁知道如何将它记录为WAV呢?或者如何在iphone上将.caf转换为.wav? (转换必须发生在手机上)

编辑:

我想知道,如果有什么可以在AudioFileCreateWithURL

回答

19

没错,关键是kAudioFileWAVEType

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

改变从CAF到WAVE在SpeakHere例如使录制为wav。我也在播放类中编辑相同的东西,并将文件名改为Recording.wav

2

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

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

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

但是,要知道(埃里克指出)有授权的问题,请参见:Can the Libsndfile library be used on the iPhone iOS?

+1

谢谢。我使用WAV格式链接来确认录制工作正常。我有问题发送数据到我的服务器。 – matt 2009-02-23 21:51:19

+1

我投下了这个,因为libsndfile无法在iPhone上使用:http://stackoverflow.com/questions/4939268/can-the-libsndfile-library-be-used-on-the-iphone-ios – 2011-02-10 14:40:40

相关问题