микрофонный вход работает в симуляторе, а не на телефоне xcode - PullRequest
0 голосов
/ 06 октября 2011

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

Я не уверен, что @"/dev/null" является допустимым путем на устройстве.Ваше приложение не может читать или писать вне своей песочницы, поэтому настройка экземпляра AVAudioRecorder для записи в / dev / null, вероятно, не будет работать.

Попробуйте указать ему путь к файлу в вашемВместо этого в папке «Документы» приложения.

...