SlimDx воспроизводит WAV-файл с высокой загрузкой процессора, вызывая сбои звука

Я играю аудио WAV файлы через SlimDx, и все играет нормально, если процессор не составляет около 70 процентов. В этот момент я получаю заметные глюки звука. Программа, которую я пишу, - это не просто аудиоплеер, но она выполняет большую часть работы... в основном программа вызывает высокую загрузку процессора. (много данных, проходящих через систему).

Когда я воспроизводю аудиофайл (файлы не такие большие), я считываю волновой файл в буфер памяти и приказываю XAudio2 воспроизвести весь буфер (всего 1 буфер), поэтому, как только я сообщаю XAudio2 воспроизвести SourceVoice, я просто жду событие BufferEnd, и я знаю, что все готово.

Если я получаю данные PerformanceData с устройства XAudio2, я вижу, что количество сбоев увеличивается даже при более низкой загрузке ЦП, но вы не можете слышать сбои.

В то же время, если я проигрываю звук через Windows Media Player, я не получаю никаких глюков. Это потому, что он не в том же процессе, или, может быть, он написан на C++ против оболочки.net на XAudio2?

Вопросы: 1. Я где-то читал, что.net Wrapper для XAudio2 может вызывать сбои в некоторых ситуациях. Это причина высокой загрузки процессора? 2. Я вижу, что при создании объекта SlimDX XAudio2 создается поток XAudio2. Есть ли у нас возможность установить приоритет потока SlimDx XAudio2?

Какие-либо предложения?

0 ответов

Другие вопросы по тегам