我正在通过SlimDx播放音频wav文件,除非CPU大约70%,否则一切正常。那时我得到一些明显的音频故障。我写的程序不只是一个音频播放器,但它做了很多工作...基本上该程序导致高CPU使用率。 (大量数据通过系统)。
当我播放音频文件(文件不是那么大)时,我将波形文件读入内存缓冲区并告诉XAudio2播放整个缓冲区(总共1个缓冲区)所以一旦我告诉XAudio2播放SourceVoice我就是只是在等待一个BufferEnd事件,我知道我已经完成了。
如果我从XAudio2设备获得PerformanceData,我发现即使在较低的CPU使用率下毛刺计数也会增加,但是您无法听到毛刺。
同时,如果我通过Windows媒体播放器播放音频,我不会有任何故障。是因为它不在同一个进程中,或者它是用C ++编写而不是XAudio2上的.net包装器?
问题: 我在某处看到XAudio2的.net Wrapper在某些情况下会引起故障。这是高CPU使用率的原因吗? 2.我在创建SlimDX XAudio2对象时看到创建了一个XAudio2线程。我们是否能够设置SlimDx XAudio2线程的优先级?
有什么建议吗?