推荐的 Apple iPhone 录音设置和使用的文件扩展名

Posted

技术标签:

【中文标题】推荐的 Apple iPhone 录音设置和使用的文件扩展名【英文标题】:Recommended Apple iPhone Audio Recording Settings and what file extension to use 【发布时间】:2009-08-21 06:11:06 【问题描述】:

我想听听您对使用 AVAudioRecorder 进行音频录制的设置的建议。以下是我目前使用的设置。另外,我应该保存什么文件扩展名,以便 Mac 或 Windows 上的用户可以毫无困难地播放它?现在我将文件保存为 .caf

[设置 setValue:[NSNumber numberWithInt: kAudioFormatAppleLossless] forKey:AVFormatIDKey]; [设置 setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; [设置 setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey]; //线性PCM格式设置 [设置 setValue:[NSNumber numberWithInt: 32] forKey:AVLinearPCMBitDepthKey]; [设置 setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey]; [设置 setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey]; //编码器设置 [设置 setValue:[NSNumber numberWithInt:AVAudioQualityMin] forKey:AVEncoderAudioQualityKey]; [设置 setValue:[NSNumber numberWithInt:96] forKey:AVEncoderBitRateKey]; [设置 setValue:[NSNumber numberWithInt:16] forKey:AVEncoderBitDepthHintKey];

【问题讨论】:

【参考方案1】:

你录制音频是为了什么?本地播放?上传到服务器?通过互联网流式传输?

一些注意事项:

使用音频硬件的采样率(是 32、44.1 还是 48?)。下采样很痛苦。上采样只会使您的数据更大。确保它确实受到支持(您可以通过查看 Audacity 中的 FFT 或类似内容进行检查;上采样音频往往会在某个频率之上具有重复或平坦的频谱)。例如,诺基亚 E90 似乎以 8 kHz 的频率从麦克风录制,但会为您上采样到 48 kHz。 我不知道有任何硬件支持 32 位音频。 iPhone 可能甚至不支持 24 位音频。你当然不需要;使用 16。 除 QuickTime 和随附的 Apple 产品外,不支持 Apple Lossless。 AVAudioQualityMin 可能意味着“快速压缩”而不是“让它变小”,也就是说,它可能听起来很垃圾,但实际上并不小。 我不确定编码器设置对 Apple Lossless 有多大影响(比特率可能被忽略;质量可能是大小/速度的权衡)。

【讨论】:

【参考方案2】:

CAF 是一种非常灵活的格式,但在 Core Audio-dom 之外没有得到广泛支持。

由于您正在录制大端 PCM,您可能需要使用 AIFF。如果您希望对 Windows 更友好,可以使用 WAV,但您必须使用 little-endian。

【讨论】:

实际上,IsBigEndian=NO,所以它是小端,所以是 WAV 而不是 AIFF(有一个未记录的“sowt”AIFF-C,它是小端;我相信这仅存在于音频 CD 中”文件系统”可以在没有字节交换的情况下传递 CD 音频块。“sowt”是“twos”向后。)

以上是关于推荐的 Apple iPhone 录音设置和使用的文件扩展名的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - AudioToolbox 和录音

如何在 iPhone 上录制 AMR 音频格式?

iPhone - 使用 AVAudioRecorder 录音

Apple Watch录音界面开始录音后崩溃

iPhone应用程序内部录音

同时录制音频和播放 iPod?