【发布时间】:2010-09-28 20:08:09
【问题描述】:
我想使用 iphone 录制音频(
谢谢!
【问题讨论】:
标签: iphone
我想使用 iphone 录制音频(
谢谢!
【问题讨论】:
标签: iphone
我同意,SpeakHere 不是学习 iPhone 音频的一个很好的起点。
iPhone 音频使用两个概念。音频队列和音频会话。如果要录制到文件中,则需要创建一个 AudioSession,激活会话,并创建一个 AudioInputQueue 和一个 AudioOutputQueue。
AudioQueues 的参考(到目前为止,您将处理最多的部分)是:
至于音频会话:
尽管您可以忽略大部分 AudioSession 内容,因为您不会做任何那么复杂的事情。所以基本上,这里是步骤:
我没有在这里包含所有参数,但这就是 API 的用途。
希望对您有所帮助。
[编辑]
抱歉,忘记包含输出内容,尽管它们相当简单。创建另一个 AudioQueue,使用 AudioQueueNewOutput 进行初始化,API 应该能够指导您完成剩下的工作。
干杯。
【讨论】:
不再需要音频队列来录制音频。现在使用 AVAudioRecorder 类是一个非常简单的过程。
【讨论】:
此代码用于录制音频
别忘了添加 AVFoundation 和 AudioToolBox 框架
NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
recordedTmpFile = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"filename.caf"]];
NSLog(@"Using File called: %@",recordedTmpFile);
recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:nil];
[recorder setDelegate:self];
[recorder prepareToRecord];
[recorder record];
【讨论】: