2009-02-20 49 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