Вопрос

Я пытаюсь записать звук, используя метод, описанный в этот вопрос;с AVCaptureSession и AVCaptureAudioDataOutput.Кажется, это работает нормально, но есть одно неудобство:в симуляторе это не работает.И AVAudioRecorder, и старое доброе демонстрационное приложение SpeakHere отлично работают в симуляторе, используя внутренний микрофон на моем MacBook Pro.

Проблема в том, что [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio] дает null в симуляторе, поэтому последующий код завершается с ошибкой с сообщением (когда он пытается добавить null в качестве входных данных для AVCaptureSession):

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Can't add <AVCaptureDeviceInput: 0x9138b40 [(null)]> because the device does not support AVCaptureSessionPresetHigh.  Use -[AVCaptureDevice supportsAVCaptureSessionPreset:].'

Есть ли простой способ заставить это работать в симуляторе?

Это было полезно?

Решение

А AVCaptureDevice класс не реализован в симуляторе (по крайней мере, на момент написания этой статьи, возможно, в будущем он изменится).

Попробуйте, например.

NSLog(@"%@", [AVCaptureDevice devices]);

который создаст пустой список в симуляторе (но будет перечислять все устройства захвата, если он скомпилирован и запущен на реальном iDevice).

Функциональность такого рода в любом случае необходимо тестировать на реальном устройстве (из-за зависимости от деталей оборудования, таких как задержка и поддерживаемые форматы образцов), поэтому для целей тестирования не так важно иметь поддержку устройства в симуляторе.Но было бы действительно неплохо иметь его для демонстрационных целей.

Чтобы запустить демо-версию на симуляторе, возможно, вы сможете имитировать ввод захвата.Если вы действительно хотите потратить на это некоторое время, возможно, вы можете вернуться к AVAudioRecorder для симулятора (я никогда не использовал AVAudioRecorder, поэтому не могу сказать, работает он или нет на симуляторе, но из вашего вопроса я прочитал, что работает).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top