將shot.wav放到執行目錄裡,接著在執行過後,就會聽到shot的聲音
加上外掛系統: #include <mmsystem.h> ///多媒體系統的外掛
和呼叫聲音的函式: PlaySound("shot.wav",NULL,SND_SYNC); ///呼叫聲音的函示
執行過後發現,會出現「咚」一聲,而不是我們的shot.wav的聲音,因為執行目錄裡沒有shot.wav
(1)SND_SYNC – 等它(同步)
(2)SND_ASYNC – 不等它(不同步)
Week 11 - Part 2 - 利用滑鼠來控制聲音
將ccheer的聲音不斷地撥放,並且加上mouse函式,執行後會發現 ccheer.wav會一直重複撥放,
直到我按下滑鼠左鍵會有一聲shot的聲音
void mouse(int button,int state,int x,int y)
{
if(state==GLUT_DOWN)
{
PlaySound("Shot.wav",NULL,SND_ASYNC); ///每按一次mouse就發一聲shot
}
}
Week 11 - Part 3 - 利用鍵盤當鋼琴
到moodle把7個音的wav檔下載下來
把剛剛下載下來的wav檔放到執行目錄裡(C:\Users\N\Desktop\CCE\2下\電腦圖學\freeglut\bin)
加上見按下鍵盤撥放聲音的程式碼
case '1':
PlaySound("Do.wav",NULL,SND_ASYNC);
break;
case '2':
PlaySound("Re.wav",NULL,SND_ASYNC);
break;
case '3':
PlaySound("Mi.wav",NULL,SND_ASYNC);
break;
case '4':
PlaySound("Fa.wav",NULL,SND_ASYNC);
break;
case '5':
PlaySound("Sol.wav",NULL,SND_ASYNC);
break;
case '6':
PlaySound("La.wav",NULL,SND_ASYNC);
break;
case '7':
PlaySound("Si.wav",NULL,SND_ASYNC);
break;
接著按執行,沒辦法讀取PlaySound,因為外掛系統在key函式下面所以還不認得
將外掛移到key函是在執行一次,就發現按下鍵盤的數字1~7可以變成小小鋼琴了
Week 11 - Part 4 - 自己寫一個可以有聲音的專案
新增一個新的Console專案
打上程式碼,卻發現依然無法執行,因為link 裡面沒有它
#include <windows.h> ///要使用windows.h裡的一些定義
#include <mmsystem.h> ///多媒體系統
#include <stdio.h>
int main ()
{
PlaySound("ccheer.wav",NULL,SND_SYNC); ///等它
printf("Hello World!\n");
}
在link加入winmm,在執行,就可以編譯成功,但依然沒有聲音
將ccheer.wav檔放到week11_HelloWorld專案裡,再次執行檔案,就發現有聲音了
等到聲音撥放完畢才會印出Hello World!(因為等它)
若改成不等他,執行程式後馬上就會結束,所以對程式碼做修改
#include <windows.h>///要使用windows.h裡的一些定義
#include <mmsystem.h>///多媒體系統
#include <stdio.h>
int main ()
{
PlaySound("ccheer.wav",NULL,SND_ASYNC);///等它
printf("Hello World!\n");
int n;
scanf("%d",&n);
}
等我輸入整數n之後,就結束














沒有留言:
張貼留言