C++ 播放声音跳过文件的前半秒,除非音乐播放器程序正在运行

C++ 播放声音跳过文件的前半秒,除非音乐播放器程序正在运行,c++,windows,winapi,audio,C++,Windows,Winapi,Audio,我有一些非常简短的(为了子孙后代,我将在这里指出“解决方案”,以及一些相关事实 Playsound和mcisendstring在特定系统上无法播放某些短文件。我怀疑原因是NVIDIA卡/驱动程序,因为不同的Windows 8系统没有出现此问题 第三次尝试是魅力,当我通过DirectShow实现调用时,它工作可靠。事实上,只要打开DirectShow连接就足以让mcisendstring自己成功工作(这一定是当WMP或iTunes也在系统上运行时调用工作的原因)。DirectShow太糟糕了(就像

我有一些非常简短的(为了子孙后代,我将在这里指出“解决方案”,以及一些相关事实

Playsound和mcisendstring在特定系统上无法播放某些短文件。我怀疑原因是NVIDIA卡/驱动程序,因为不同的Windows 8系统没有出现此问题

第三次尝试是魅力,当我通过DirectShow实现调用时,它工作可靠。事实上,只要打开DirectShow连接就足以让mcisendstring自己成功工作(这一定是当WMP或iTunes也在系统上运行时调用工作的原因)。DirectShow太糟糕了(就像几乎所有其他东西)已经被微软媒体基金会取代,但是对于简单的播放WAV文件来说太复杂了。

    Playsound( L"mfile.wav", NULL, SND_ASYNC | SND_FILENAME );