C++语言程序能让电脑直发出特定频率的声音吗?

RT,我试了beep(),这个函数是哪里发声的呀?听上去好奇怪呀。。。而且貌似不能设置音量啊,声音好小。。。像Overture那个作曲软件,可以调音色的,而且声音也比较正... RT,我试了beep(),这个函数是哪里发声的呀?听上去好奇怪呀。。。而且貌似不能设置音量啊,声音好小。。。
像Overture那个作曲软件,可以调音色的,而且声音也比较正常啊,不知道是怎么实现呀?
另外,一般的声音文件比如一首MP3格式的歌 又是怎么播放出来的呢?写C++程序能发出音色丰富的声音吗?
展开
 我来答
L_o_o_n_i_e
推荐于2016-05-11 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5482万
展开全部
beep() 可以发出特定频率的声音,用电脑内的“蜂鸣器”发音,不能设置音量。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
main()
{
Beep(523,500);Beep(587,500);Beep(659,500);Beep(698,500);Beep(784,500);
Beep(880,500);Beep(980,500);Beep(1060,500);
Sleep(500);
Beep(523,500);Beep(587,500);
Beep(659,500);Beep(698,500);Beep(784,500);
}
---
播放 wav音乐, avi 可以直接调用函数。VC++ 编译器 带有相应的库。
例如 avi:
#include <Vfw.h>
#pragma comment (lib, "Vfw32.lib")
h_wnd2 = MCIWndCreate(hwnd,NULL,0,"sylvtwt.avi");
MCIWndPlay(h_wnd2);
播放 wav音乐:
#include <mmsystem.h>
#pragma comment (lib, "winmm.lib")
PlaySound (TEXT("D:\\xyz\\zzd.wav"), NULL, SND_ASYNC | SND_NODEFAULT);
===
MP3格式 要自己解码。
追问
谢谢您的回复~
是这样,我想实现这样一个程序:就是按下键盘上的一个键发出一个音(dol, re, mi,fa...),就像键盘钢琴一样。
那如果Beep只能这样的话,我难道只能每一个音录一个wav文件然后按一个键播放一下播放吗...?这样会不会反应太慢了呀?
我看有的地方说Windows自带一个4M的MIDI音色库,那要怎么能通过C++或者是C语言来发送MIDI消息给MIDI设备让它发出声音呢?
Scitin
2011-04-02 · TA获得超过2052个赞
知道小有建树答主
回答量:1487
采纳率:0%
帮助的人:887万
展开全部
一般的声音文件都是转成WAV再用API函数PlaySound放出来的.自己控制显卡发声比较难吧.我也不会.
很多游戏的发音都是通过不停播放WAV来实现的.经常放的声音可以整个文件读入内存,再用PlaySound放.
追问
谢谢回复~
我看有的地方说Windows自带一个4M的MIDI音色库,那要怎么能通过C++或者是C语言来发送MIDI消息给MIDI设备让它发出声音呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式