
C++语言程序能让电脑直发出特定频率的声音吗?
RT,我试了beep(),这个函数是哪里发声的呀?听上去好奇怪呀。。。而且貌似不能设置音量啊,声音好小。。。像Overture那个作曲软件,可以调音色的,而且声音也比较正...
RT,我试了beep(),这个函数是哪里发声的呀?听上去好奇怪呀。。。而且貌似不能设置音量啊,声音好小。。。
像Overture那个作曲软件,可以调音色的,而且声音也比较正常啊,不知道是怎么实现呀?
另外,一般的声音文件比如一首MP3格式的歌 又是怎么播放出来的呢?写C++程序能发出音色丰富的声音吗? 展开
像Overture那个作曲软件,可以调音色的,而且声音也比较正常啊,不知道是怎么实现呀?
另外,一般的声音文件比如一首MP3格式的歌 又是怎么播放出来的呢?写C++程序能发出音色丰富的声音吗? 展开
2个回答
展开全部
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格式 要自己解码。
#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设备让它发出声音呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询