在内置扬声器上播放声音以及使用旧的xp api功能的可能性?

Dav*_*vid 1 c++ windows audio beep windows-7

Windows Vista发布后,Windows功能蜂鸣声会在连接的扬声器上发出蜂鸣声而不是内部扬声器.

反正有没有访问旧功能?是否有可能通过在旧的Windows API中保留?或者还有其他方法可以实现这一目标吗?如果是这样,我希望能够同时设置频率和持续时间.

我应该提一下,我实际上是针对windows xp平台.

Ada*_*eld 6

不可以.该功能在Kernel32.dll中实现,它在运行时从您当前运行的任何OS版本加载.由于代码不在您的可执行文件或系统DLL中,因此您无法运行它(甚至不考虑从不同的操作系统版本复制Kernel32.dll,这只是为了麻烦而尖叫).

您可以尝试使用MessageBeep而不是Beep,但这可以减少对输出的控制,并且可能仍然使用您的声卡而不是内部声卡

有关该MessageBeep函数的有趣历史,请参阅Larry Osterman的博客.