如何通过C++代码让主板发出蜂鸣声?

3

如何让主板内置扬声器发出声音,例如使用Beep命令但指向主板扬声器

操作系统=Windows 7 x64

我目前知道如何提供蜂鸣声到默认的声音设备,包括音调和毫秒数,但这并没有回答我的问题,因为我不能强制任何这些声音传递到主板内部扬声器。

Beep(523, 500);

我的问题主要是关于一种替代Beep程序的方法,该方法可以将声音通过主板扬声器播放而不是计算机音频卡。或者一种将Beep命令或输入的音频频率直接传输到主板扬声器的方法。


3
你不能指望我们给你代码吗? - Arnav Borborah
1
你有搜索过吗?这里你的问题不够清晰或者说太宽泛了。 - Khalil Khalaf
1
定义“真正的答案”是什么?您是否使用了任何基础代码? - Khalil Khalaf
2
使用Beep(hertz, milli)并在控制台中尝试/a。尽管这只将其定向到了我预期的默认声音设备。 - ITCSB
1
@ZephyrPellerin 哇,冷静点。如果 OP 想要得到更好的回复,他本可以改进问题的描述。为什么他不在问题描述中提供那段小代码,而是放在评论里呢? - Khalil Khalaf
显示剩余15条评论
2个回答

3

该问题后来被指定为Win32编程环境,此问题描述了Linux解决方案。

您可以使用KIOCSOUND ioctl生成音调,如下所示:

ioctl(fd,KIOCSOUND,(int) tone)

Linux编程接口是一本非常好的书,其中详细介绍了使用IOCTL,但也有一些公共资源可以描述IOCTL,例如长久以来的经典TLDP


感谢您的回复,虽然我没有使用Linux作为我的操作系统,但这行代码很完美。我会将其保留以备将来需要! - ITCSB
@ITCSB 下次请考虑使用[linux][windows]等标签来标记与平台相关的问题。 - Keith M

2
在Windows 7中,Beep已重写为将蜂鸣传递到会话的默认声音设备。这通常是声卡,但在终端服务下运行时,则在客户端上呈现蜂鸣声。来源 显然,有一种可能的系统修改被描述在这里

这听起来很不错,但对我的需求不适用。我正在尝试使用蜂鸣命令创建一首歌曲,然后将其交给我的朋友,他不希望他的计算机系统文件以任何形式被更改。 - ITCSB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接