除VLC外,AVAudioRecorder文件无法播放

时间:2010-08-31 15:52:19

标签: iphone core-audio avaudiorecorder aac

确定。我想我在这里错过了一些东西,我是Core Audio的新手,但我已经仔细研究了 Apple文档和网络的其余部分无济于事。我也向apple dev论坛发布了同样的问题并且没有回复。我希望StackOverflow社区可以帮助我。

我正在录制音频并使用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];

1 个答案:

答案 0 :(得分:2)

在Apple论坛上的一些人的帮助下解决了这个问题。我所要做的就是将文件扩展名设置为m4a!手动更改分机并尝试在iTunes中播放不起作用。 AVAudioRecorder中的一些内容似乎使用扩展来正确编码文件。只需正确设置扩展,它就可以很好地工作。希望将来可以帮助其他人。