Nano Hash - криптовалюты, майнинг, программирование

Запись аудио, когда устройство заблокировано iOS

Кто-нибудь знает эффективный способ записи звука, когда устройство заблокировано на iOS?

В настоящее время я использую два AVAudioRecorder, один для прослушивания шумов (audioListener), а другой для фактической записи этих шумов (audioRecorder). AudioListener всегда записывает и получает измерительные уровни шумов, поскольку он должен записывать, чтобы получить эти уровни. Если эти шумы превышают пороговое значение, audioRecorder начинает запись в течение пяти секунд и в методе audioRecorderDidFinishRecording добавит каждый аудиофайл в массив для дальнейшего использования. Я также уже установил ключ «Приложение не работает в фоновом режиме» в info.plist на NO и разрешил фоновый режим звука.

Мне все еще нужно сделать еще несколько тестов, чтобы увидеть, правильно ли он записывает, когда устройство заблокировано, но мне интересно, кто-нибудь знает какие-либо другие способы сделать это?


Ответы:


1

Вам нужно установить категорию звука на AVAudioSessionCategoryPlayAndRecord, а также режим фонового звука, как вы это сделали.

Ознакомьтесь с Руководством по программированию AudioSession.

14.10.2015
  • Я уже сделал это, возможно, это связано с неправильным сохранением аудиофайлов. 14.10.2015
  • это другой вопрос 14.10.2015
  • Я понимаю это, я просто имел в виду, что проблема может быть не в аудиозаписи, а в том, как я сохраняю данные. У вас есть идеи, могу ли я использовать этот метод для записи в течение нескольких часов, пока устройство заблокировано? 14.10.2015
  • Вы проверили это? Я бы использовал что-то более низкоуровневое, например Core-Audio с ExtAudioFileWriteAsync. Просто передайте буфер, полученный от обратного вызова микрофона, в функцию ExtAudioFileWriteAsync. Ограничьте вызовы Objective-C или Swift в обратном вызове, предпочтительно используйте C или C++. 14.10.2015
  • Извините за задержку ответа. Проблема с тем, как я делал это до того, как я полагаюсь на таймер для вызова метода, который проверяет, превышают ли шумы определенную громкость. Я бы предположил, что этот таймер будет приостановлен, когда устройство заблокировано. Мне нужно будет изучить ваш способ сделать это с Core Audio. 18.10.2015
  • Да, это также будет разряжать аккумулятор. С CoreAudio вы получаете буферы данных, переданных вашей функции обратного вызова, которые вы затем можете обработать. Внутри этой функции вы можете проверить уровни дБ или частоту и т. д. 18.10.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..