Документация
Docs/ru/reference/audio/validation.md
Контракт проверки аудио
Сгенерированный справочник. Не редактируйте его источник напрямую. Обновите
BuildTools/AudioInterface.json, затем выполнитеpython BuildTools/docs_audio.py --write.
| Индекс | Форматы | Доставка | Декодирование | Воспроизведение | Проверка | Канонический JSON | Руководство |
| Стабильный ID | Правило | Требование | Причина | Источник |
|---|---|---|---|---|
audio.validation.generated-reference |
Справочник по исходникам | Перегенерируйте и проверяйте audio-модель при изменении AudioBaker, AudioManager, AppAudio, настроек, доставки пакета или script entry points. | Сгенерированная модель выявляет drift расширений исходников, runtime-кодека, размера порции, настройки, handle, набора тестов и headless-поведения до незаметного устаревания текста. | BuildTools/docs_audio.py |
audio.validation.raw-copy |
Гейт запекания аудио | Запеките репрезентативные входы PCM/float WAV и нативного Ogg, убедитесь в сохранении авторских путей, проверьте счётчики аудио и откройте каждый результат как Vorbis. | Сфокусированные тесты доказывают преобразование и passthrough, а запекание во встраиваемом проекте доказывает, что его пакет действительно выбирает Audio и поставляет ресурсы, используемые скриптами. | Source/Tests/Test_AudioBaker.cpp, Source/Tools/AudioBaker.cpp |
audio.validation.decoder-diagnostics |
Диагностика декодера | Считайте исключения AudioBaker и диагностику открытия Ogg, декодирования или преобразования устройства ошибками авторинга либо упаковки; не принимайте нулевой handle воспроизведения за проверку контента. | WAV и Ogg без перекодирования отклоняются во время запекания, а существующий ресурс, который нельзя декодировать в runtime, записывает ошибку и входит в debugger вместо незаметного успеха с тишиной. | Source/Tools/AudioBaker.cpp, Source/Client/AudioManager.cpp |
audio.validation.headless-boundary |
Граница headless | Не заявляйте слышимую проверку по headless- или stub-приложению; AppAudio там отключён, а воспроизведение может сообщить о no-op success. | Headless-аудио намеренно не предоставляет активного устройства или callback. | Source/Frontend/ApplicationHeadless.cpp |
audio.validation.native-test-gap |
Сфокусированное нативное покрытие | Запускайте Test_AudioBaker и Test_AudioManager для запекания WAV/Ogg, passthrough, ошибочных входов, панорамирования, позиционированного воспроизведения, текущих обновлений, истечения handles и вывода mixer. | Эти suites напрямую исполняют контракт кодека и callback; видимый клиент всё ещё нужен, чтобы доказать работу реального платформенного устройства и слышимый вывод. | Source/Tests/README.md, BuildTools/docs_audio.py |
audio.validation.visible-client |
Видимая слышимая проверка | На каждой заявленной платформе используйте видимый клиент с включённым аудио: воспроизведите запечённый ресурс с WAV-путём и ресурс с нативным Ogg-путём, переместите позиционированный звук, замените музыку, проверьте отложенный и немедленный повтор и крайние значения громкости. | Только активное платформенное аудиоустройство доказывает преобразование, планирование callback, микширование и слышимый вывод. | Source/Frontend/Application.cpp, Source/Client/AudioManager.cpp |
audio.validation.project-boundary |
Владение встраиваемого проекта | Храните соглашения каталога, spatial/recipient-политику, мастеринг, лицензии, атрибуцию, бюджеты и игровые триггеры в проектной документации и тестах. | Движок предоставляет запекание, runtime-декодирование, клиентский mixer и параметры позиционирования, а не полный игровой аудиодизайн или систему управления ресурсами. | Source/Client/AudioManager.h |
Команды проверки
python BuildTools\docs_audio.py --check
python -m unittest BuildTools.tests.test_docs_audio
cmake --build <build-dir> --config RelWithDebInfo --target RunUnitTests
Сейчас нет сфокусированного нативного fixture декодера/воспроизведения. Встраиваемый проект также должен запечь репрезентативные WAV, ACM и Ogg, вызвать эффекты и музыку в видимом клиенте с включённым аудио, проверить логи и поведение громкости/повтора на каждой заявленной платформе.