如何用c++播放音樂?
c++作為每一個OIer的日常伙伴,打久了,不免有些乏味和疲倦
那么,我們是否可以讓沒有音響的電腦播放音樂呢?
答案是可以的。
Beep( A , B )函數
其中A代表 音調 ,B 代表發聲的長短(毫秒)
下面給出一個示范
#include<bits/stdc++.h>
#include <windows.h>
#define n1 532 // do 1音
#define D 250 //定義 D 為 1拍
int main(){
Beep( n1 , D ) ;
return 0 ;
}
這就是 do 音。是不是很簡單呢?
但是我們要注意,Beep() 並不在萬能頭文件中,而是存在 windows 庫中。后面要用的 Sleep() 函數也是如此。
在理解了 Beep() 函數后 , 我們來了解一下 Sleep() 函數。
Sleep( A ) , A表示暫停時間(毫秒)
#include<bits/stdc++.h>
#include <windows.h>
#define n1 532 // do 1音
#define D 250 //定義 D 為 1拍
int main(){
Beep( n1 , D ) ;
Sleep( D );
Beep( n1 , D ) ;
return 0 ;
}
運行后發現 兩個 do 音之間有了時間間隔;
了解寄出后,我們可以自定義一些基礎樂理的快捷方式,給出基礎板子(不用謝,給個贊就行)
#define l1 262
#define l2 294
#define l3 330
#define l4 349
#define l5 392
#define l6 440
#define l7 493
#define n1 532
#define n2 588
#define n3 660
#define n4 698
#define n5 784
#define n6 880
#define n7 988
#define h1 1046
#define h2 1175
#define h3 1319
#define h4 1397
#define h5 1568
#define h6 1760
#define h7 1976
#define A 1600*1.25 //四拍
#define B 800*1.25 //兩拍
#define C 400*1.25 //一拍
#define D 200*1.25 //半拍
#define E 100*1.25 //1/4拍
#define F 50*1.25 //1/8拍
#define S(i) Sleep(i)
最后獻上由本人(ssw02)親自編寫的
《戀愛循環》
#include<bits/stdc++.h>
#include <windows.h>
//作者 ssw02
#define l1 262
#define l2 294
#define l3 330
#define l4 349
#define l5 392
#define l6 440
#define l7 493
#define n1 532
#define n2 588
#define n3 660
#define n4 698
#define n5 784
#define n6 880
#define n7 988
#define h1 1046
#define h2 1175
#define h3 1319
#define h4 1397
#define h5 1568
#define h6 1760
#define h7 1976
#define A 1600*1.25 //四拍
#define B 800*1.25 //兩拍
#define C 400*1.25 //一拍
#define D 200*1.25 //半拍
#define E 100*1.25 //1/4拍
#define F 50*1.25 //1/8拍
#define S(i) Sleep(i)
#define wq( i , j ) Beep( i , j )
int main(){
wq(n3,D);wq(n4,D);wq(n3,D);wq(n4,D);wq(n5,C);wq(n3,D);wq(n4,D);
wq(n3,D);wq(n4,D);wq(n5,C);wq(n5,D);wq(n4,D);wq(n3,D);wq(n4,D);
wq(n3,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(l6,D);
wq(n3,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(l6,D);
wq(n1,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(l6,D);wq(n3,C);S(C);
//-----------------------------------------作者 ssw02 -----
//----------C1----D0.5---------------------------------------2
wq(n3,D);wq(n4,D);wq(n3,D);wq(n4,D);wq(n5,C);wq(n3,D);wq(n4,D);
wq(n3,D);wq(n4,D);wq(n5,C);wq(n5,D);wq(n4,D);wq(n3,D);wq(n4,D);
wq(n3,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(l6,D);
wq(n3,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(n2,D);
wq(n1,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(n3,D);wq(n3,C);S(C);
//-----------------------------------------作者 ssw02 -----
//----------C1----D0.5---------------------------------------3
wq(n5,C);wq(n3,C);wq(n2,C);wq(n3,D);wq(n3,D);
wq(n2,D);wq(n1,D);wq(n2,D);wq(n3,B);wq(n3,D);
wq(n6,C);wq(n3,C);wq(n2,C);wq(n1,D);wq(n1,D);
wq(n1,D);wq(n2,D);wq(n3,D);wq(n2,C);S(C);S(D);
//-----------------------------------------作者 ssw02 -----
//----------C1----D0.5---------------------------------------4
wq(n5,C);wq(n3,C);wq(n2,C);wq(n3,D);wq(n3,D);
wq(n2,D);wq(n1,D);wq(n2,D);wq(n3,B);wq(n3,D);
wq(n6,C);wq(n3,C);wq(n1,C);wq(n3,C);
wq(n1,C);S(C);S(C);S(D);wq(n1,E);wq(l5,E);
//----------------------------------------作者 ssw02 -----1
//----------C1----D0.5---------------------------------------4
wq(l6,375);wq(l6,375);wq(l5,D);wq(n1,375);wq(n1,E);S(D);wq(n1,E);wq(l5,E);
wq(l6,375);wq(l6,375);wq(l5,D);wq(n1,375);wq(n3,E);S(D);wq(n1,E);wq(l5,E);
wq(l6,375);wq(l6,D);wq(l6,E);wq(n5,D);wq(n1,375);wq(n1,D);wq(n1,E);wq(n2,D);
wq(n1,375);wq(n1,E);S(E);wq(n1,E);wq(l6,D);wq(n3,C);S(D);wq(n1,E);wq(l5,E);
wq(l6,375);wq(l6,375);wq(l5,D);wq(n1,375);wq(n1,E);S(D);wq(n1,E);wq(l5,E);
wq(l6,375);wq(l6,375);wq(l5,D);wq(n3,375);wq(n1,E);S(D);wq(n1,E);wq(l5,E);
wq(l6,375);wq(l6,D);wq(l6,E);wq(n5,D);wq(n1,375);wq(n1,D);wq(n1,E);wq(n2,D);
wq(n1,375);wq(n1,D);wq(n3,375);wq(n1,C);S(C);
}