2010-08-31 80 views
1

好的。我想我在這裏錯過了一些東西,而我是Core Audio的新手,但我已經搜索了蘋果文檔和其他網絡文檔,但都無濟於事。我也發佈了同樣的問題到蘋果開發論壇,並沒有得到答覆。我希望StackOverflow社區能幫助我。AVAudioRecorder文件不會播放除了VLC

我正在錄音並使用AVAudioRecorder和AVAudioPlayer播放。我的應用程序還使用文件共享,因此用戶可以導出音頻並在其他地方播放。這是我的問題出現的地方。我使用AAC編碼進行錄製,但該文件不會導入到iTunes中。它使用VLC播放良好,並查看媒體信息其編解碼器是我期望的mp4a。

在網上閱讀其聽起來像AAC需要一個mp4a包裝。任何人都可以啓發我或指導我的一些信息呢?可能是我可以使用的API或第三方庫?

我玩過SpeakHere和ExtAudioFileConvertTest示例,增加了文件共享, 記錄爲AAC,但它們仍然不會在iTunes中播放。

這是我的錄音代碼。非常感謝任何建議或指導。謝謝!

NSDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys: 
      [NSNumber numberWithFloat: 44100.0], AVSampleRateKey, 
      [NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey, 
      [NSNumber numberWithInt: 1], AVNumberOfChannelsKey, 
      [NSNumber numberWithInt: AVAudioQualityMax],AVEncoderAudioQualityKey, 
      nil]; 

     ...      


NSError *error; 
recorder = [[AVAudioRecorder alloc] initWithURL: soundFileURL 
                               settings: recordSettings 
                                error: &error]; 

回答

2

通過蘋果論壇的一些幫助找出了這個問題。我所要做的就是將文件擴展名設置爲m4a!手動更改擴展名並嘗試在iTunes中播放不起作用。 AVAudioRecorder封面下的東西似乎使用擴展名正確編碼文件。只需正確設置擴展名,並且它的工作性能非常好。希望這有助於別人在未來。