1.播放聲音
(1)(還沒有shot的執行目錄,所以只有"燈愣"的聲音)
程式碼:
#include<windows.h>
int main()
{ ///執行目錄 ///空指標 ///要等同步
PlaySound("shot.wav", NULL, SND_SYNC);
}
(2)找音源檔(一定要wav檔)
youtube 轉MP3:https://www.y2mate.com/zh-tw/youtube-mp3/tQ0yjYUFKAE
(3)讓多個音源連接著一起撥放(不用同步,要敲Enter)
程式碼:
#include<windows.h>
#include <stdio.h>
int main()
{
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_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10 playsound");
glutDisplayFunc(display);
glutKeyboardFunc( keyboard);
glutMainLoop();
}
(5)用MP3放入背景/同時
程式碼:
#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);
if(key=='4') PlaySound("fa.wav", NULL, SND_ASYNC);
if(key=='5') PlaySound("so.wav", NULL, SND_ASYNC);
}
int main(int argc, char *argv[])
{
mp3.Load("music.mp3");///檔案放執行目錄....\freeglut\bin
mp3.Play(); ///播放
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10 playsound");
glutDisplayFunc(display);
glutKeyboardFunc( keyboard);
glutMainLoop();
}
(6)除了背景音樂還加上了滑鼠案鍵有聲音
程式碼:
#include <windows.h>
#include <GL/glut.h>
#include"CMP3_MCI.h"
CMP3_MCI 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);
if(key=='4') PlaySound("fa.wav", NULL, SND_ASYNC);
if(key=='5') PlaySound("so.wav", NULL, SND_ASYNC);
}
void mouse(int button, int state, int x, int y)
{
if(state==GLUT_DOWN) PlaySound("shot.wav", NULL, SND_ASYNC);
}///按下滑鼠有聲音
int main(int argc, char *argv[])
{
mp3.Load("music.mp3");
mp3.Play();
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10 playsound");
glutDisplayFunc(display);
glutKeyboardFunc( keyboard);
glutMouseFunc(mouse);
glutMainLoop();
}
(7)讓滑鼠多個聲音共存
程式碼:
#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);
if(key=='4') PlaySound("fa.wav", NULL, SND_ASYNC);
if(key=='5') PlaySound("so.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_LEFT_BUTTON) shot2.Play();
if(state==GLUT_DOWN && button == GLUT_LEFT_BUTTON) shot3.Play();
}
int main(int argc, char *argv[])
{
shot1.Load("1.wav"); shot2.Load("2.wav"); shot3.Load("3.wav");///檔名
mp3.Load("music.mp3");
mp3.Play();
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10 playsound");
glutDisplayFunc(display);
glutKeyboardFunc( keyboard);
glutMouseFunc(mouse);
glutMainLoop();
}
(8)把音樂放到同一個執行專案

沒有留言:
張貼留言