如何在 iOS 上录制 PCM 音频文件?

Posted

技术标签:

【中文标题】如何在 iOS 上录制 PCM 音频文件?【英文标题】:How do you record a PCM audio file on iOS? 【发布时间】:2014-09-28 10:19:34 【问题描述】:

是否可以通过麦克风录制 PCM 音频文件?我正在尝试录制一个非常短的 PCM 音频文件,但到目前为止一直很困难。

我尝试过使用 AVAudioRecorder 但这不起作用:

AVAudiosession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryRecord error:nil];
NSDictionary* recorderSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                  [NSNumber numberWithInt:kAudioFormatLinearPCM],AVFormatIDKey,
                                  [NSNumber numberWithInt:44100],AVSampleRateKey,
                                  [NSNumber numberWithInt:1],AVNumberOfChannelsKey,
                                  [NSNumber numberWithInt:16],AVLinearPCMBitDepthKey,
                                  [NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey,
                                  [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
                                  nil];
NSError* error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSURL* outURL = [NSURL fileURLWithPath:[documentsDirectory stringByAppendingPathComponent:@"output.pcm"]];
recorder = [[AVAudioRecorder alloc] initWithURL:outURL settings:recorderSettings error:&error];
[recorder prepareToRecord];
recorder.meteringEnabled = YES;
[recorder record];

如果有人能指出正确的方向,将不胜感激,谢谢。

【问题讨论】:

【参考方案1】:

您了解音频队列服务吗?如果你知道,你可以很容易。 在其他情况下,您可以使用AVAudioRecord 进行操作。请检查以下网址: How do I record audio on iPhone with AVAudioRecorder? 谢谢。

【讨论】:

【参考方案2】:

参考以下内容:“Speakhere”作为参考 https://developer.apple.com/library/ios/samplecode/SpeakHere/Listings/ReadMe_txt.html

【讨论】:

SpeakHere 示例将音频保存为 .caf 文件,但我需要将音频保存在 .pcm 文件中?

以上是关于如何在 iOS 上录制 PCM 音频文件?的主要内容,如果未能解决你的问题,请参考以下文章

iOS录制时如何将PCM缓冲区实时转换为AAC数据?

Android 如何使用 MediaRecorder 录制音频并输出为原始 PCM?

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

在 HTC One 上以 16khz 单声道 PCM (WAV) 录制时出现断断续续的音频

在 Python 中检测并录制音频为 PCM 格式

android上的qt5不使用QAudioRecorder录制PCM wav文件