1

好的。我想我在这里遗漏了一些东西,而且我是 Core Audio 的新手,但我已经搜索了 Apple 文档和网络的其他部分,但无济于事。我也在苹果开发论坛上发布了同样的问题,但没有得到回复。我希望 StackOverflow 社区可以帮助我。

我正在录制音频并使用 AVAudioRecorder 和 AVAudioPlayer 播放它。我的应用程序还使用文件共享,因此用户可以导出音频并在其他地方播放。这就是我的问题所在。我正在使用 AAC 编码进行录制,但文件不会导入 iTunes。它使用 VLC 播放良好,并查看媒体信息,它的编解码器是我所期望的 mp4a。

在网上阅读它听起来像 AAC 需要一个 mp4a 包装器。任何人都可以启发我或指导我了解这方面的一些信息吗?可能是我可以使用的 API 或 3rd 方库?

我玩过 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];
4

1 回答 1

2

在 Apple 论坛上的一些人的帮助下弄清楚了这一点。我所要做的就是将文件扩展名设置为 m4a!手动更改扩展名并尝试在 iTunes 中播放不起作用。AVAudioRecorder 中的某些东西似乎使用扩展名来正确编码文件。只需正确设置扩展名,它就可以很好地工作。希望这对将来的其他人有所帮助。

于 2010-10-09T03:02:02.500 回答