播放WAV檔
#include <windows.h>
#include <mmsystem.h> playsound函式
int main()
{
PlaySoundA("ccheer.wav", NULL, SND_SYNC);
檔名 空 聲音同步
}
檔案要存在freeglut\bin裡面
把.cbp的檔案路徑刪除
#include <mmsystem.h> playsound函式
int main()
{
PlaySoundA("ccheer.wav", NULL, SND_SYNC);
檔名 空 聲音同步
}
檔案要存在freeglut\bin裡面
進階
#include <windows.h>
#include <mmsystem.h>
#include <GL/glut.h>
void display()
{
}
void keyboard(unsigned char key,int x, int y)
{
if(key=='1')PlaySoundA("do.wav", NULL, SND_ASYNC); 不同步,不等結束,繼續
if(key=='2')PlaySoundA("re.wav", NULL, SND_ASYNC);
if(key=='3')PlaySoundA("mi.wav", NULL, SND_ASYNC);
if(key=='4')PlaySoundA("fa.wav", NULL, SND_ASYNC);
if(key=='5')PlaySoundA("so.wav", NULL, SND_ASYNC);
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week12");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard); 鍵盤函式
glutMainLoop();
}
#include <mmsystem.h>
#include <GL/glut.h>
void display()
{
}
void keyboard(unsigned char key,int x, int y)
{
if(key=='1')PlaySoundA("do.wav", NULL, SND_ASYNC); 不同步,不等結束,繼續
if(key=='2')PlaySoundA("re.wav", NULL, SND_ASYNC);
if(key=='3')PlaySoundA("mi.wav", NULL, SND_ASYNC);
if(key=='4')PlaySoundA("fa.wav", NULL, SND_ASYNC);
if(key=='5')PlaySoundA("so.wav", NULL, SND_ASYNC);
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week12");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard); 鍵盤函式
glutMainLoop();
}
CMP3_MCI.h老師給的mp3程式
丟入相同路徑
#include <windows.h>
#include <mmsystem.h>
#include <GL/glut.h>
#include "CMP3_MCI.h" 雙引號,專案在同一個目錄
CMP3_MCI mp3; 宣告變數,mp3
void display()
{
}
void keyboard(unsigned char key,int x, int y)
{
if(key=='1')PlaySoundA("do.wav", NULL, SND_ASYNC);
if(key=='2')PlaySoundA("re.wav", NULL, SND_ASYNC);
if(key=='3')PlaySoundA("mi.wav", NULL, SND_ASYNC);
if(key=='4')PlaySoundA("fa.wav", NULL, SND_ASYNC);
if(key=='5')PlaySoundA("so.wav", NULL, SND_ASYNC);
}
int main(int argc,char**argv)
{
mp3.Load("music.mp3");
mp3.Play();
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week12");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
#include <mmsystem.h>
#include <GL/glut.h>
#include "CMP3_MCI.h" 雙引號,專案在同一個目錄
CMP3_MCI mp3; 宣告變數,mp3
void display()
{
}
void keyboard(unsigned char key,int x, int y)
{
if(key=='1')PlaySoundA("do.wav", NULL, SND_ASYNC);
if(key=='2')PlaySoundA("re.wav", NULL, SND_ASYNC);
if(key=='3')PlaySoundA("mi.wav", NULL, SND_ASYNC);
if(key=='4')PlaySoundA("fa.wav", NULL, SND_ASYNC);
if(key=='5')PlaySoundA("so.wav", NULL, SND_ASYNC);
}
int main(int argc,char**argv)
{
mp3.Load("music.mp3");
mp3.Play();
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week12");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
把單音符變合弦
#include <windows.h>
#include <mmsystem.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
CMP3_MCI Do,Re,Mi,Fa,So; 五個物件變數
void display()
{
}
void keyboard(unsigned char key,int x, int y)
{
if(key=='1')Do.Play();///PlaySoundA("do.wav", NULL, SND_ASYNC); 可有合弦
if(key=='2')Re.Play();///PlaySoundA("re.wav", NULL, SND_ASYNC);
if(key=='3')Mi.Play();///PlaySoundA("mi.wav", NULL, SND_ASYNC);
if(key=='4')Fa.Play();///PlaySoundA("fa.wav", NULL, SND_ASYNC);
if(key=='5')So.Play();///PlaySoundA("so.wav", NULL, SND_ASYNC);
}
int main(int argc,char**argv)
{
Do.Load("do.wav"); Re.Load("Re.wav"); Mi.Load("Mi.wav"); 五個變數 設好檔案
Fa.Load("Fa.wav"); So.Load("So.wav");
mp3.Load("music.mp3");
///mp3.Play();
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week12");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
#include <mmsystem.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
CMP3_MCI Do,Re,Mi,Fa,So; 五個物件變數
void display()
{
}
void keyboard(unsigned char key,int x, int y)
{
if(key=='1')Do.Play();///PlaySoundA("do.wav", NULL, SND_ASYNC); 可有合弦
if(key=='2')Re.Play();///PlaySoundA("re.wav", NULL, SND_ASYNC);
if(key=='3')Mi.Play();///PlaySoundA("mi.wav", NULL, SND_ASYNC);
if(key=='4')Fa.Play();///PlaySoundA("fa.wav", NULL, SND_ASYNC);
if(key=='5')So.Play();///PlaySoundA("so.wav", NULL, SND_ASYNC);
}
int main(int argc,char**argv)
{
Do.Load("do.wav"); Re.Load("Re.wav"); Mi.Load("Mi.wav"); 五個變數 設好檔案
Fa.Load("Fa.wav"); So.Load("So.wav");
mp3.Load("music.mp3");
///mp3.Play();
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week12");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
整合檔案
#include <windows.h>
#include <mmsystem.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
CMP3_MCI Do, Re, Mi, Fa, So;
float ballX=0, ballY=0, dx=0.05, dy=0.03; ballX會加上dx, ballY會加上dy
void display()
{ 小遊戲....有個球,會動來來動
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix(); 備份
glTranslatef(ballX, ballY, 0); 移到ballX,ballY
glutSolidSphere(0.1, 30,30); 圓球
glPopMatrix(); 還原
glutSwapBuffers();
}
void timer(int t) timer
{
glutTimerFunc(50, timer, t+1); 用timer
ballX+=dx; ballY+=dy; 球會動
if(ballX>=1){
Do.Play(); dx= -dx;
}
if(ballX<=-1){
Re.Play(); dx= -dx;
}
if(ballY>=1){
Mi.Play(); dy= -dy;
}
if(ballY<=-1){
Fa.Play(); dy= -dy;
}
glutPostRedisplay();
}
void mouse(int button, int state, int x, int y) mouse會有槍聲
{
if(state==GLUT_DOWN) PlaySoundA("shot.wav", NULL, SND_ASYNC);
}
void keyboard(unsigned char key, int x, int y)
{
if(key=='1') Do.Play();///TODO4 PlaySoundA("do.wav",NULL,SND_ASYNC);
if(key=='2') Re.Play();///TODO4//PlaySoundA("re.wav",NULL,SND_ASYNC);
if(key=='3') Mi.Play();///TODO4//PlaySoundA("mi.wav",NULL,SND_ASYNC);
if(key=='4') Fa.Play();///TODO4//PlaySoundA("fa.wav",NULL,SND_ASYNC);
if(key=='5') So.Play();///TODO4//PlaySoundA("so.wav",NULL,SND_ASYNC);
}
int main(int argc, char**argv)
{
Do.Load("do.wav"); Re.Load("re.wav"); Mi.Load("mi.wav");
Fa.Load("fa.wav"); So.Load("so.wav");
mp3.Load("music.mp3");
///mp3.Play();
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow("week12 sound");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutTimerFunc(50, timer, 0);
glutMouseFunc(mouse);
glutMainLoop();
}
#include <mmsystem.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI mp3;
CMP3_MCI Do, Re, Mi, Fa, So;
float ballX=0, ballY=0, dx=0.05, dy=0.03; ballX會加上dx, ballY會加上dy
void display()
{ 小遊戲....有個球,會動來來動
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix(); 備份
glTranslatef(ballX, ballY, 0); 移到ballX,ballY
glutSolidSphere(0.1, 30,30); 圓球
glPopMatrix(); 還原
glutSwapBuffers();
}
void timer(int t) timer
{
glutTimerFunc(50, timer, t+1); 用timer
ballX+=dx; ballY+=dy; 球會動
if(ballX>=1){
Do.Play(); dx= -dx;
}
if(ballX<=-1){
Re.Play(); dx= -dx;
}
if(ballY>=1){
Mi.Play(); dy= -dy;
}
if(ballY<=-1){
Fa.Play(); dy= -dy;
}
glutPostRedisplay();
}
void mouse(int button, int state, int x, int y) mouse會有槍聲
{
if(state==GLUT_DOWN) PlaySoundA("shot.wav", NULL, SND_ASYNC);
}
void keyboard(unsigned char key, int x, int y)
{
if(key=='1') Do.Play();///TODO4 PlaySoundA("do.wav",NULL,SND_ASYNC);
if(key=='2') Re.Play();///TODO4//PlaySoundA("re.wav",NULL,SND_ASYNC);
if(key=='3') Mi.Play();///TODO4//PlaySoundA("mi.wav",NULL,SND_ASYNC);
if(key=='4') Fa.Play();///TODO4//PlaySoundA("fa.wav",NULL,SND_ASYNC);
if(key=='5') So.Play();///TODO4//PlaySoundA("so.wav",NULL,SND_ASYNC);
}
int main(int argc, char**argv)
{
Do.Load("do.wav"); Re.Load("re.wav"); Mi.Load("mi.wav");
Fa.Load("fa.wav"); So.Load("so.wav");
mp3.Load("music.mp3");
///mp3.Play();
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_DEPTH);
glutCreateWindow("week12 sound");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutTimerFunc(50, timer, 0);
glutMouseFunc(mouse);
glutMainLoop();
}







沒有留言:
張貼留言