Реализация записи аудио в мобильном приложении

Реализация записи аудио в мобильном приложении Диктофон, войс-сообщения, запись интервью — каждая задача предъявляет свои требования к аудио. Войс-сообщение должно быть маленьким (AAC, 32 кбит/с), подкаст — без потерь (WAV или FLAC, 44100 Гц). Начинаем с аудиосессии: неправильная категория — и зв

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Реализация записи аудио в мобильном приложении
Средний
от 1 дня до 3 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Реализация записи аудио в мобильном приложении

Диктофон, войс-сообщения, запись интервью — каждая задача предъявляет свои требования к аудио. Войс-сообщение должно быть маленьким (AAC, 32 кбит/с), подкаст — без потерь (WAV или FLAC, 44100 Гц). Начинаем с аудиосессии: неправильная категория — и звук идёт не в тот динамик, а другое приложение перехватывает запись. Мы решаем эти проблемы на iOS и Android, используя проверенные паттерны. Опыт нашей команды — 10+ лет в мобильной разработке. Мы реализовали аудиозапись в приложениях для журналистов, музыкантов и мессенджеров. Гарантируем стабильную работу даже в фоне. Неправильная конфигурация приводит к искажению звука, обрывам записи при сворачивании и конфликтам с другими аудиоприложениями. Мы научились избегать этих проблем и готовы поделиться опытом. В этой статье вы узнаете, как правильно настроить аудиосессию, выбрать оптимальный формат, реализовать визуализацию и фоновую запись. На практике встречаются проекты, где аудиозапись реализована с ошибками — например, неправильно выбран битрейт или не настроена обработка прерываний. Мы предлагаем готовое решение, которое учитывает все нюансы. С нами вы получите стабильный и производительный модуль записи, который легко интегрируется в ваше приложение.

Аудиосессия и категории

iOS. AVAudioSession — центральный объект управления. Подробнее о нём — в документации Apple. Для записи:

let session = AVAudioSession.sharedInstance() try session.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker, .allowBluetooth]) try session.setActive(true) 

.playAndRecord позволяет одновременно воспроизводить и писать. .allowBluetooth включает запись с AirPods. Без .defaultToSpeaker — звук при воспроизведении идёт в ухо, не в динамик.

Проблема, которая встречается в продакшене: другое приложение (навигатор, музыкальный плеер) перехватывает сессию. Подписываемся на AVAudioSession.interruptionNotification, при .began паузируем запись, при .ended с .shouldResume — возобновляем.

Android. AudioRecord для прямого доступа к PCM-данным. MediaRecorder — проще, но меньше контроля над форматом. Для большинства задач MediaRecorder достаточен (см. документацию Android):

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC) mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4) mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC) mediaRecorder.setAudioSamplingRate(44100) mediaRecorder.setAudioEncodingBitRate(128000) 

VOICE_COMMUNICATION вместо MIC включает эхоподавление и шумоподавление на уровне системы — полезно для войс-сообщений.

Параметр iOS (AVAudioSession) Android (MediaRecorder)
Категория .playAndRecord AudioSource.MIC
Формат M4A (AAC) MPEG-4 (AAC)
Частота 44100 Гц 44100 Гц
Фоновая запись UIBackgroundModes ForegroundService

Как выбрать формат аудиозаписи?

Выбор формата зависит от назначения. Для войс-сообщений оптимален AAC — он даёт хорошее качество при низком битрейте. Для подкастов лучше FLAC — сжатие без потерь при меньшем размере, чем WAV. MP3 — универсальный выбор, но уступает AAC по размеру при том же качестве. В таблице ниже приведены характеристики популярных форматов.

Формат Размер 1 мин Совместимость Применение
AAC (M4A) ~480 КБ iOS, Android, Web войс-сообщения
MP3 ~960 КБ везде общий случай
WAV (PCM) ~10 МБ везде без потерь, диктофон
FLAC ~3–5 МБ Android native, iOS 11+ без потерь, компактнее WAV
OGG/Opus ~300 КБ Android, Web оптимальный для VoIP

AAC превосходит MP3 по эффективности сжатия: при одинаковом битрейте звучит лучше. Для iOS-приложений используйте M4A-контейнер, для Android — MPEG-4.

Визуализация уровня звука

Амплитудный волновой индикатор — пользователь видит, что запись идёт. На iOS: AVAudioRecorder.averagePower(forChannel: 0) возвращает дБ (от -160 до 0). Нормализуем в 0..1:

let power = recorder.averagePower(forChannel: 0) let level = pow(10, power / 20) // dBFS → linear 

Опрашиваем через Timer.scheduledTimer(withTimeInterval: 0.05) — 20 fps для плавной анимации.

На Android: MediaRecorder.getMaxAmplitude() — максимальная амплитуда с последнего вызова (0–32767). Делаем Handler.postDelayed каждые 50 мс. Для более точной визуализации можно использовать AudioRecord и анализировать PCM-буфер в реальном времени.

Для Flutter: record (pub.dev) предоставляет onAmplitudeChanged stream, что упрощает интеграцию.

Waveform при воспроизведении — реализация записи аудио

Записанный файл анализируем офлайн: читаем PCM-сэмплы, разбиваем на чанки по N сэмплов, берём RMS каждого чанка. Получаем массив float-значений — рисуем через Canvas или Path. На iOS нужен AVAssetReader + AVAssetReaderTrackOutput с kAudioFormatLinearPCM.

Как обеспечить фоновую запись?

Если пользователь сворачивает приложение — запись должна продолжаться. iOS: UIBackgroundModes: audio в Info.plist, AVAudioSession остаётся активной. Android: ForegroundService с типом microphone (android:foregroundServiceType="microphone" в манифесте, обязательно с Android 10). Уведомление с кнопкой «Остановить» — стандарт.

Без ForegroundService на Android 9+ система убьёт процесс через несколько минут в фоне. На iOS без UIBackgroundModes запись остановится через 3 секунды после сворачивания.

Пошаговый процесс реализации

  1. Анализ требований — определяем сценарии использования, целевые платформы, требуемые форматы и функции (визуализация, фоновая запись).
  2. Проектирование архитектуры — выбираем стек (Native или Flutter), проектируем модуль записи с учётом аудиосессии и обработки прерываний.
  3. Реализация ядра — пишем код для iOS (Swift) и Android (Kotlin), интегрируем визуализацию и сохранение файлов.
  4. Тестирование — проверяем на реальных устройствах, включая фоновый режим и прерывания от других приложений.
  5. Интеграция и деплой — встраиваем модуль в проект, готовим документацию, публикуем в сторах.

Что входит в работу

При заказе реализации аудиозаписи мы предоставляем:

  • Готовый модуль записи с выбором формата и визуализацией.
  • Интеграцию в существующий проект (iOS, Android, Flutter).
  • Документацию по API и настройке.
  • Тестирование на реальных устройствах (включая фоновый режим).
  • Поддержку при публикации в App Store и Google Play.
Типичные ошибки при реализации записи - Неправильная категория аудиосессии на iOS (используйте .playAndRecord) - Отсутствие ForegroundService на Android (запись убьют) - Выбор неподходящего формата (слишком большой файл)

Сроки

Запись с визуализацией уровня и сохранением файла — 1–2 дня. Полноценный диктофон с waveform, паузой, переименованием и фоновой записью — 3–4 дня. Стоимость рассчитывается индивидуально под ваш проект.

Закажите реализацию аудиозаписи для вашего приложения уже сегодня. Свяжитесь с нами для консультации — мы поможем выбрать оптимальное решение и оценить сроки.