1.音效(.wav)
在GLUT專案將音效加入
#include <stdio.h> #include <windows.h> ///為了一些定義DWORD #include <mmsystem.h>///為了PlaySoundA()
int main() { PlaySoundA("bass.wav",NULL,SND_SYNC); printf("Hello World\n"); }
2.用滑鼠點擊播放音效
#include <GL/glut.h> #include <windows.h> #include <mmsystem.h> void display() { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glutSwapBuffers(); } void mouse(int button,int state,int x,int y) { if(state==GLUT_DOWN)PlaySoundA("bass.wav",NULL,SND_SYNC);///當滑鼠按下去時,播放音效 } int main(int argc,char**argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH); glutCreateWindow("sound"); glutMouseFunc(mouse); glutDisplayFunc(display); glutMainLoop(); }
3.播放BGM
///先匯入
#include "CMP3_MCI.h"
///宣告一個物件變數
CMP3_MCI myMP3;
///放在main裡
myMP3.Load("bgm.mp3");
myMP3.Play();
4.SND_ASYNC不等、不同步
if(state==GLUT_DOWN)PlaySoundA("cymbal.wav",NULL,SND_ASYNC);///改成不用等音效播完才播
5.更改目錄
![]() |
| 在執行過後,log會寫檔案位置,可以看到他使用在專案裡的檔案 |
6.鋼琴
#include <GL/glut.h> #include <windows.h> #include <mmsystem.h> #include "CMP3_MCI.h" CMP3_MCI myMP3; CMP3_MCI Do,Re,Mi,Fa,So; void display() { glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glutSwapBuffers(); } void mouse(int button,int state,int x,int y) { if(state==GLUT_DOWN)PlaySoundA("cymbal.wav",NULL,SND_ASYNC); } void keyboard(unsigned char key,int x,int y) { if(key=='a'||key=='A')Do.Play(); ///PlaySoundA("do.wav",NULL,SND_ASYNC); if(key=='s'||key=='S')Re.Play(); ///PlaySoundA("re.wav",NULL,SND_ASYNC); if(key=='d'||key=='D')Mi.Play(); ///PlaySoundA("mi.wav",NULL,SND_ASYNC); if(key=='g'||key=='G')Fa.Play(); ///PlaySoundA("fa.wav",NULL,SND_ASYNC); if(key=='h'||key=='H')So.Play(); ///PlaySoundA("so.wav",NULL,SND_ASYNC); } int main(int argc,char**argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH); glutCreateWindow("sound"); Do.Load("do.wav");Re.Load("re.wav");Mi.Load("mi.wav");Fa.Load("fa.wav");So.Load("so.wav"); glutMouseFunc(mouse); glutKeyboardFunc(keyboard); glutDisplayFunc(display); glutMainLoop(); }




沒有留言:
張貼留言