啊哈磊_编程从这里起步

标题: 谁能说说怎么让软件发出自己想要的声音 [打印本页]

作者: tjq200236    时间: 2013-7-28 22:18
标题: 谁能说说怎么让软件发出自己想要的声音
如题,希望高手能帮帮忙{:soso__3110130392203091378_3:}

作者: 超神级    时间: 2013-7-28 22:18
C语言中让扬声器响铃是printf("\a");
其实,还有也能让计算机发声,就是windows.h中的Beep和MessageBeep函数

Beep(500,1000)让计算机发出一段500Hz,持续1000毫秒的声音.
MessageBeep则是让扬声器发出消息的提示音
MessageBeep(MB_OK)
MessageBeep(MB_ICONHAND)
MessageBeep(MB_ICONASTERISK)
MessageBeep(MB_ICONEXCLAMATION)
MessageBeep(MB_ICONQUESTION)
以上是抄袭别的网友的需要的话拿去吧
作者: rosynirvana    时间: 2013-7-28 23:10
winapi

PlaySound之类的,msdn上慢慢翻吧
还有就是记得啊哈C没法链接部分api所需要的库,你要会用命令行或者换个IDE
作者: 981013    时间: 2013-8-1 14:28
rosynirvana 发表于 2013-7-28 23:10
winapi

PlaySound之类的,msdn上慢慢翻吧

路过刚好看到,去找了下PlaySound();使用时发现第三个参数有SND_ASYNC时没有正常播放声音,怎么回事?
我希望在程序运行时在后台播放声音……
另:GNU的编译器似乎没有WINMM.LIB这个lib,因此不能编译(我的解决办法是手动为gcc添加MS的WINMM.LIB库)
作者: rosynirvana    时间: 2013-8-1 17:22
981013 发表于 2013-8-1 14:28
路过刚好看到,去找了下PlaySound();使用时发现第三个参数有SND_ASYNC时没有正常播放声音,怎么回事?
我 ...

所以说,你具体写了什么?

库本来就是操作系统提供的,你问编译器要它当然没有……
作者: 981013    时间: 2013-8-2 13:15
rosynirvana 发表于 2013-8-1 17:22
所以说,你具体写了什么?

库本来就是操作系统提供的,你问编译器要它当然没有……

PlaySound("*.wav", NULL, SND_FILENAME | SND_ASYNC);
作者: rosynirvana    时间: 2013-8-2 17:09
981013 发表于 2013-8-2 13:15
PlaySound("*.wav", NULL, SND_FILENAME | SND_ASYNC);

SND_ASYNC和其他flag一起用很容易出错,老问题了
微软一直搞新的api,好像没有要维护的意思
作者: 981013    时间: 2013-8-3 13:15
rosynirvana 发表于 2013-8-2 17:09
SND_ASYNC和其他flag一起用很容易出错,老问题了
微软一直搞新的api,好像没有要维护的意思

那怎么办
作者: rosynirvana    时间: 2013-8-3 14:33
981013 发表于 2013-8-3 13:15
那怎么办

换个api或者另外弄个进程播放




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2