019. Avalonia UI - Capturing Microphone Audio

019. Avalonia UI - Capturing Microphone Audio

Видео: 019. Avalonia UI - Capturing Microphone Audio

RuTube

Ленинский Букварь

Опубликовано: 16.04.2026 | Продолжительность: 00:25:00

00:00 Введение и цель Необходимо найти способ записывать и передавать аудио в потоковом режиме с Mac Windows и Linux. Если не удастся найти готовое решение придётся создать код самостоятельно. Цель найти код который позволит передавать аудио с любого подключённого микрофона. 00:31 Начало исследования Проект использует Avalonia и .NET Core для получения звука. Начинаем поиск решений через Google ищем статьи и пакеты NuGet. Планируем экспериментировать с различными пакетами. 01:45 Обзор OpenTK .NET OpenTK использует классы захвата звука для сбора данных с микрофона на разных платформах. Поддерживает Windows Linux и Mac. Имеет высокую стабильность и поддержку. 02:42 Анализ других вариантов Рассматриваем пример с процентной шкалой уровня звука. Оцениваем документацию и активность разработки. Сравниваем OpenTK с другими вариантами. 06:31 Проблемы с Naudio Naudio поддерживает только Windows что ограничивает его использование. Для Mac потребуется другое решение. 07:52 Попытка использования SoundLib Пытаемся использовать оболочку C для кроссплатформенного аудио SoundLib. Возникают проблемы с одобрением файлов на Mac. Исследуем ошибки и пытаемся их исправить. 10:11 Отладка кода Удаляем устройство вывода чтобы проверить работу кода. Обнаруживаем ошибку ввода-вывода звука. Продолжаем отладку проверяя использование кольцевого буфера. 11:00 Создание кольцевого буфера Создание кольцевого буфера для хранения данных. Длительность буфера вызова составляет 30 секунд. Переписывание кода под конкретные нужды. 11:16 Работа с указателями и байтами Считывание свободных байтов из указателя записи. Использование расширенного указателя чтения для подсчёта байтов в кадре. Начало чтения с определённого количества кадров. 12:06 Проблемы с задержкой микрофона Упоминание проблемы с задержкой микрофона. Серверная часть равна нулю что указывает на отсутствие проблем. 12:46 Выбор устройства по умолчанию Если значение device равно null выбирается устройство по умолчанию. Регистрация выходных данных при нулевом результате. 13:18 Проверка совместимости частоты дискретизации Проверка совместимости частоты дискретизации устройства вывода с форматом. Устройство ввода поддерживает формат и частоту дискретизации. 14:04 Настройка входного потока Необходимость включения устройства вывода для выбора макета. Использование одного и того же устройства для входа и выхода. 15:30 Расчёт частоты дискретизации и задержки Точный расчёт частоты дискретизации количества байт на кадр и времени задержки. Сохранение данных в буфере без его создания. 18:43 Чтение данных из потока Получение каналов считывание количества байт на выборку. Копирование данных из потока в буфер памяти. 20:11 Анализ полученных данных Проверка формата и частоты дискретизации данных. Анализ необработанного звука с нулями и единицами. 21:12 Исправление ошибок чтения Удаление цикла for для буфера. Проверка работы системы после исправления. 22:12 Вывод данных на консоль Вывод данных на консоль для анализа. Суммирование байтов и вывод их на экран. 23:28 Анализ значений данных Анализ значений данных полученных из аудиозаписи. Понимание что данные не обязательно связаны с объёмом. 23:54 Запись звука в код Запись звука легко включается в код. Для записи звука требуется небольшой фрагмент кода и обратный вызов. Можно передавать данные в потоковом режиме вместо записи четырёх байтов. 24:46 Тестирование и интеграция Автор предлагает протестировать запись звука на разных микрофонах. Планируется интеграция записи в чтение аудиоданных и их визуальную обработку. Если тест пройдёт успешно интеграция будет продолжена.,

#

Категория видео: Обучение