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


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

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

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

Пример потоковой передачи с помощью XAudio2 см. в разделе Практическое руководство. Потоковая передача звука с диска.

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

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