播放音檔
1. 播放一個音檔
#include <windows.h>
int main()
{
PlaySound("shot.wav", NULL,SND_SYNC);///音檔放在freeglut\bin裡
}
2. 播放多個音檔
#include <windows.h>
int main()
{///播放聲音("檔名.wav", 空指標, 等待同步);
PlaySound("do.wav", NULL,SND_SYNC);
PlaySound("re.wav", NULL,SND_SYNC);
PlaySound("mi.wav", NULL,SND_SYNC);
PlaySound("fa.wav", NULL,SND_SYNC);
PlaySound("so.wav", NULL,SND_SYNC);
}
3. 因為音檔時間太長,改成輸入指令並按Enter執行音檔
#include <windows.h>
#include <stdio.h>
int main()
{///播放聲音("檔名.wav", 空指標, 不等待同步);
while (1){
char c=getchar();
if (c=='1') PlaySound("do.wav", NULL,SND_ASYNC);
if (c=='2') PlaySound("re.wav", NULL,SND_ASYNC);
if (c=='3') PlaySound("mi.wav", NULL,SND_ASYNC);
if (c=='4') PlaySound("fa.wav", NULL,SND_ASYNC);
if (c=='5') PlaySound("so.wav", NULL,SND_ASYNC);
}
}
4. 因為要在按Enter太麻煩,所以改成直接按指令發聲音
#include <windows.h>
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
void keyboard(unsigned char key, int x,int y)
{
if(key=='1') PlaySound("do.wav", NULL, SND_ASYNC);
if(key=='2') PlaySound("re.wav", NULL, SND_ASYNC);
if(key=='3') PlaySound("mi.wav", NULL, SND_ASYNC);
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
5. 邊播放音樂邊下指令撥放其他音樂
#include <windows.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"///.h檔放在這個專案的資料夾裡
CMP3_MCI mp3;///宣告一個MP3變數
void display()
{
glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
void keyboard(unsigned char key, int x,int y)
{
if(key=='1') PlaySound("do.wav", NULL, SND_ASYNC);
if(key=='2') PlaySound("re.wav", NULL, SND_ASYNC);
if(key=='3') PlaySound("mi.wav", NULL, SND_ASYNC);
}
int main(int argc, char**argv)
{
mp3.Load("music.mp3");///檔案放在freeglut\bin裡
mp3.Play();///播放
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
6. 讓左右中鍵按下並發出聲音
#include <windows.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
CMP3_MCI shot1,shot2,shot3;
void display()
{
glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
void keyboard(unsigned char key, int x,int y)
{
if(key=='1') PlaySound("do.wav", NULL, SND_ASYNC);
if(key=='2') PlaySound("re.wav", NULL, SND_ASYNC);
if(key=='3') PlaySound("mi.wav", NULL, SND_ASYNC);
}
void mouse(int button, int state, int x, int y)
{
if(state==GLUT_DOWN&&button==GLUT_LEFT_BUTTON) shot1.Play();
if(state==GLUT_DOWN&&button==GLUT_MIDDLE_BUTTON) shot2.Play();
if(state==GLUT_DOWN&&button==GLUT_RIGHT_BUTTON) shot3.Play();
}
int main(int argc, char**argv)
{
shot1.Load("1.wav"); shot2.Load("2.mav"); shot3.Load("3.wav");
mp3.Load("music.mp3");
mp3.Play();
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();
}






沒有留言:
張貼留言