Я пытаюсь запрограммировать приложение, которое использует среднюю мощность микрофона, чтобы вызвать реакцию игры.Я использую следующий код в -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];
В симуляторе работает нормально, но не работаеткогда я положу его на свой телефон, чтобы проверить.Что я делаю не так?