搜索
查看: 1809|回复: 8
打印 上一主题 下一主题

谁能说说怎么让软件发出自己想要的声音

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-28 22:18:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
如题,希望高手能帮帮忙{:soso__3110130392203091378_3:}

最佳答案

查看完整内容

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) 以上是抄袭别的网友的需要的话拿去吧
沙发
发表于 2013-7-28 22:18:57 | 只看该作者
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)
以上是抄袭别的网友的需要的话拿去吧
板凳
发表于 2013-7-28 23:10:40 | 只看该作者
winapi

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

PlaySound之类的,msdn上慢慢翻吧

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

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

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

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

PlaySound("*.wav", NULL, SND_FILENAME | SND_ASYNC);
7#
发表于 2013-8-2 17:09:37 | 只看该作者
981013 发表于 2013-8-2 13:15
PlaySound("*.wav", NULL, SND_FILENAME | SND_ASYNC);

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

那怎么办
9#
发表于 2013-8-3 14:33:18 | 只看该作者
981013 发表于 2013-8-3 13:15
那怎么办

换个api或者另外弄个进程播放
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表