Считаем учебный бюджет битрейта и теоретический объём 16-битного PCM. Не выдаём оценку за точный размер реального файла.
Где и как запускать
Полный клиентский обработчик собственной мобильной формы. На сервере и в тонком клиенте Windows этот тип не запускайте.
Подготовка
Используйте собственную форму поддерживаемого мобильного клиента/мобильного приложения, начиная с 8.3.17. Создайте команду ВыполнитьПример и назначьте её клиентский обработчик. Вставляйте полный модуль одного урока.
Примеры создают только параметры и считают размеры. Они не включают микрофон, не записывают звук, не запрашивают разрешение, не создают файл и не отправляют данные.
Числа — учебные параметры кодирования. Реальная поддержка формата/частоты зависит от устройства и проверяется отдельным упражнением реальной аудиозаписи.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
AAC = Новый ПараметрыАудиозаписи(ФорматАудиозаписи.Mpeg4AAC, ИспользованиеКаналовАудиозаписи.Моно, 44100, 128000);
PCM = Новый ПараметрыАудиозаписи(ФорматАудиозаписи.WavPCM16bit, ИспользованиеКаналовАудиозаписи.Стерео, 44100);
ДлительностьСекунд = 60;
ОценкаAACБайт = AAC.СкоростьКодирования * ДлительностьСекунд / 8;
Сообщить(ОценкаAACБайт = 960000);
Сообщить("Оценка AAC, КиБ: " + Строка(ОценкаAACБайт / 1024));
Сообщить(AAC.ФорматАудиозаписи = ФорматАудиозаписи.Mpeg4AAC);
Сообщить(AAC.ИспользованиеКаналовАудиозаписи = ИспользованиеКаналовАудиозаписи.Моно);
КаналовPCM = 2;
БитНаОтсчетPCM = 16;
Если PCM.ИспользованиеКаналовАудиозаписи <> ИспользованиеКаналовАудиозаписи.Стерео Тогда
ВызватьИсключение "Расчёт выполнен только для собственного стерео-профиля";
КонецЕсли;
ОбъемPCMБайт = PCM.ЧастотаДискретизации * КаналовPCM * БитНаОтсчетPCM * ДлительностьСекунд / 8;
Сообщить(PCM.ФорматАудиозаписи = ФорматАудиозаписи.WavPCM16bit);
Сообщить(ОбъемPCMБайт = 10584000);
Сообщить("Теоретические данные PCM, МиБ: " + Строка(ОбъемPCMБайт / 1024 / 1024));
Сообщить("Оценки не включают контейнер, заголовки и фактическое поведение кодека");
КонецПроцедурыРазбор по шагам
Для заданного AAC-битрейта 128000 × 60 / 8 = 960000 байт, или 937.5 КиБ. Это бюджет по параметру, не измерение файла.
Формат WavPCM16bit подразумевает 16-битный PCM. Для двух каналов при 44100 отсчётах/с математический объём данных за 60 секунд равен 10584000 байт.
СкоростьКодирования AAC не используется как формула объёма несжатого PCM: для него считаем частоту × каналы × разрядность × секунды / 8.
Не умножаем AAC-битрейт ещё раз на число каналов без отдельного контракта кодека. Параметр — скорость кодирования данного профиля.
WAV-заголовки, контейнер AAC, округление и реальное поведение устройства могут менять фактический размер. В уроке файла нет, поэтому точный размер не проверен.
Как проверить результат
Пять контрольных Истина; две оценки 960000 и 10584000 байт.
Проверьте арифметику отдельно калькулятором. Для точного размера реальной записи нужен другой урок с собственным микрофоном и измерением файла.
Ожидаемый результат
Показана полезная оценка бюджета записи с корректным различением сжатого битрейта и несжатых данных.
На что обратить внимание
Не обещайте точный размер AAC-файла только по параметру битрейта.
Не смешивайте КиБ/МиБ по основанию 1024 с десятичными кБ/МБ.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.