Здравствуйте, наши пользователи.
Данная статья про такую тему, как запись звука в программах для Android и в частности в нашем продукте.
Крайняя необходимость такого описания возникла с выходом версии пеленгатора номер 23.
В текущей статье мы напишем почему все-таки мы "вынесли" все параметры записи на выбор пользователя и порекомендуем что можно, а что нельзя.
![]() |
![]() |
Источники записи звонков | Источники записи окружающей среды |
Название в программе | Описание |
---|---|
Microphone | Запись непосредственно с микрофона телефона |
Call line | Трафик снимается непосредственно с линии звонка |
Down link | Аудио-данные в телефонном звонке от собеседника (Rx - данные) |
Up link | Аудио-данные в телефонном звонке от абонента (Tx - данные) |
Camcorder | Запись с микрофона, встроенного в камеру телефона |
Recognition | По сути микрофон, только настроенный на распознавание голоса |
Что использовать для записи окружающей среды?
Для записи окружающей среды использовать надо Microphone либо Camcorder либо Recognition.
Бывали случаи (но это не закономерность!), что при наличии микрофона в камере, с него по качеству записи и по амплитуде звук получался лучше.
По умолчанию в нашей программе стоит источник записи - микрофон, тк он по факту всегда есть в android аппаратах. Далее все предложенные варианты - вы тестирует на свой страх и риск.
Что использовать для записи звонков?
Тут дело обстоит очень интересно... В теории способов записи звонков "много" можно и линию записать можно и отдельно абонента можно отдельно и собеседника.
Но это может os android, а не само устройство. Сама операционная система общается с железом устройства через такую связку: jni->lib->unix->device.
Не вдавайтесь в подробности последнего предложения). Android "не напрямую" взаимодействует с любым периферийным устройством, а через библиотеки, драйвера, написанные программистами производителей мобильных телефонов.
Смысл прост: большинство производителей телефонов в стоках своих прошивках, сборках запрещают запись непосредственно самого телефонного разговора.
Делается это потому, что в странах производителей это запрещено законом.
Решений тут несколько:
Не забываем!
Если вы поменяли какую-то настройку записи, то удосужтесь проверить её на работоспособность. Сделайте звонок или запрос на запись окружающей среды и посмотрите в личный кабинет, есть ли там вообще запись и проигрывается ли она, если есть!
Кодек - это механизм/алгоритм сжатия данных.
Формат файла - это механизм/алгоритм/контейнер хранения данных в файле.
Сначала расскажу о всех возможных значениях, потом опишу что и как использовать.
Название в программе | Минимальная версия Android | Описание |
---|---|---|
AMR_NB | 1 (BASE) | Adaptive multi rate narrow band. Кодирование звука специально предназначенное сжатия сигнала в речевом диапазоне частот. Узкополосный вариант AMR кодека. Судя по опыту и по статистике тестирования и по документам - есть различные варианты реализации кодека с различными скоростями потока данных (битрейт). Значит оно неизменяемое для устройства, то есть какое есть такое есть и любое изменение битрейта/частоты дискретизации для указанного кодека не имеет значения. |
AMR_WB | 2.3.3 (GINGERBREAD) | Adaptive multi rate wide band. Кодирование звука специально предназначенное сжатия сигнала в речевом диапазоне частот. Широкополосный вариант AMR. Изначально специально создано было для передачи речи в передачах по Voip. Не тестировалось, но есть предположение, что скорость потока данных так же неизменяема программно. Но изначально запись будет качественне по битррейту и частоте. |
AAC | 2.3.3 (GINGERBREAD) | Advanced Audio Coding. Широкополосный алгоритм кодирования аудио данных. Лучше mp3. Программно можно менять частоту/битрейт/количество каналов. |
AAC_ELD | 4.1 (JELLY_BEAN) | Enhanced Low Delay AAC. |
HE_AAC | 4.1 (JELLY_BEAN) | High-Efficiency Advanced Audio Codin. Высокоэффективное усовершенствованное аудиокодирование. Требует больше вычислительных затрат по сравнению с вернхи кодеком: AAC_ELD. По сути доработанная версия AAC_ELD. |
При описании верхней таблицы вскользь упоминались такие дополнительные параметры как: битрейт/частота/количество каналов. Эти настройки являются дополнительми, тк их изменение не может влиять на качество звучания, если сам кодек это не позволяет. И поэтому очередная таблицы, которая покажет для каких кодеков можно изменять дополнительные параметры и следовательно можно получить изменения качества в звучании.
Кодек | Влияние изменения доп. настроек | Тестировалось? |
---|---|---|
AMR_NB | Нет | Да |
AMR_WB | Нет | Да |
AAC | Да | Да |
AAC_ELD | Да | Нет |
HE_AAC | Да | Нет |
Разрешенные в программе форматы хранения аудио данных:
Название | Минимальная версия Android | Описание |
---|---|---|
AMR_NB | 2.3.3 (GINGERBREAD) | Неофицальное расширение файла *.amr |
AMR_WB | 2.3.3 (GINGERBREAD) | Неофицальное расширение файла *.amr |
MPEG_4 | 1 (BASE) | Неофицальное расширение файла *.mp4 |
THREE_GPP | 1 (BASE) | Неофицальное расширение *.3gp |
AAC_ADTS | 4.1 (JELLY_BEAN) | Неофицальное расширение файла *.mp4, *.m4a, *.aac |
Если говорить "по правде", то эти расширения файлов ничего и не значат, тк все современные плееры проигрывают аудио данные по тому алгоритму, который заложем в самом содержимом файла.
Это проблема файловых менеджеров и операционной системы, что именно назначить на обработку того или иного файла в системе. Что-то отвлеклись)
Имея на руках такое описание вы можете настроить запись звонка или запись окружающей среды для себя как вам угодно. Но:
Не забываем!
Если вы поменяли какую-то настройку записи, то удосужтесь проверить её на работоспособность. Сделайте звонок или запрос на запись окружающей среды и посмотрите в личный кабинет, есть ли там вообще запись и проигрывается ли она, если есть!
Что поменяется при проигрывании файлов в личном кабинете MbLoc?
Действительно с такими новвоведениями изменится проигрывание записи в личном кабинете. Наш сервер преобразует только аудио данные от клиентских программ, записанные кодеком AMR_NB.
Следовательно другие испольуемые кодеки сервером обрабатываться не будут, но они никуда не потеряеются! У вас вместо проигрывателя записи будет просто ссылка на файл.
Вы смело щелкаете на неё (сслыку) и скачиваете (файл) на свой компьютер. Далее средствами программного обеспечения своего ЭВМ проигрываете скаченный файл. Файл всегда будет с расширением AMR, но вы на это не ведитесь,
тк я вам выше писал это просто нелегитимное ( да да мы в трендах текущего сезона )) ) расширение, которое ничего не обозначает (это сделано для удобства просто напросто).
А не проще бы написать искусственный интеллект, который бы определял поддерживаемые варианты записи и выбирал оптимальные?
Не проще по нескольким причинам:
Заключение
Мы думаем, что данная статья поможет вам разобраться с новыми параметрами записи. Всем спасибо за внимание. Если что-то не так пшием не стесняеся.