麦克风输入在模拟器中工作,而不是在手机上的xcode

时间:2011-10-06 05:28:19

标签: xcode audio avaudioplayer

我正在尝试编写一个使用麦克风的平均功率触发游戏响应的应用。我在-init中使用以下代码:

NSURL *url = [NSURL fileURLWithPath:@"/dev/null"];

NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat: 44100.0], AVSampleRateKey, [NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,[NSNumber numberWithInt: 1],   AVNumberOfChannelsKey,[NSNumber numberWithInt: AVAudioQualityMax],         AVEncoderAudioQualityKey,il];

NSError *error;
recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error];
if (recorder) {
    [recorder prepareToRecord];
    recorder.meteringEnabled = YES;
    [recorder record];
    levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.03 target: self selector: @selector(myMethod:) userInfo: nil repeats: YES];

在我的方法中 float soundLevel = [recorder averagePowerForChannel:0];

触发在模拟器中正常工作,但是当我把它放在手机上进行测试时无法正常工作。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我不确定@"/dev/null"是设备上的有效路径。您的应用无法在其沙箱外读取或写入,因此设置AVAudioRecorder实例以记录到/ dev / null可能无法正常工作。

尝试为应用程序的Documents文件夹中的文件指定路径。