Поделиться через


Потоковая передача аудиоданных XAudio2

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

При потоковой передаче аудиофайла его данные считываются с диска в блоках, а не загружают весь файл одновременно. Потоковая передача осуществляется с помощью асинхронного чтения звуковых данных в очередь дисковых буферов. Каждый буфер заполняется, а затем передаётся в источник голоса. После того как голос завершит воспроизводить буфер, буфер снова становится доступным для чтения. Циклирование буферов диска таким образом позволяет воспроизводить большой звуковой файл, пока загружается только часть его данных. Код потоковой передачи должен быть помещен в отдельный поток, где он может приостановиться, ожидая завершения длительных операций диска и звука. Класс обратного вызова используется для активации потока путем срабатывания событий, когда завершаются аудиооперации.

Пример выполнения потоковой передачи с помощью XAudio2 см. в разделе How to: Stream a Sound from Disk.

Данные потоковой передачи аудио

Руководство по программированию XAudio2