我该如何在iOS中使用AVAssetWriter正确地编写WAV音频?

3

我正在使用AVAssetWriter将wav文件输出到应用程序的临时文件夹,并使用以下设置:

NSDictionary*  outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                      [ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
                                      [ NSNumber numberWithInt: 2 ], AVNumberOfChannelsKey,
                                      [ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey,
                                      [ NSData data ], AVChannelLayoutKey,
                                      [ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey,
                                      nil];

应用程序似乎可以输出45MB大小的正常wav文件,但是无法读取它。我怀疑是因为文件头损坏了,在Audacity中打开了这个.wav文件(没有问题),然后再次导出。重新导出的文件在我的应用程序中可以正常工作。同时,我使用文本编辑器打开两个.wav文件以查看文件头,它们有所不同。你有什么线索吗?
1个回答

2

你正在使用 kAudioFormatMPEG4AAC 作为 AVFormatIDKey,但你应该使用 kAudioFormatLinearPCM。Wave 文件是 PCM 格式,无法使用 MPEG-4 数据包导出。


不想成为那个“谢谢,我已经解决了”的人,但是我遇到这个问题已经有一段时间了,我不确定你的解决方案是否正确。所以只能给你一个赞了。 - Nika Kasradze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接