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?
Какие-либо предложения?