WAV
程式碼:
#include <stdio.h>
#include <windows.h>///為了一些定義DWORD
#include <mmsystem.h>///為了PlaySoundA()
int main()
{
PlaySoundA("Water.wav",NULL, SND_SYNC);
printf("Hello World!");
}
按下有聲音:
#include <stdio.h>
#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("Sword.wav",NULL, SND_SYNC);///如果點擊才播放
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week12 Sound");
glutMouseFunc(mouse);
glutDisplayFunc(display);
glutMainLoop();
}
MP3
程式碼:
#include <stdio.h>
#include <GL/glut.h>
#include <windows.h>
#include <mmsystem.h>
#include "CMP3_MCI.h"///雙引號,表示要在同一個專案目錄找
CMP3_MCI myMP3;///宣告一個物件變數 myMP3
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("Sword.wav",NULL, SND_SYNC);
}
int main(int argc, char **argv)
{
myMP3.Load("BGM.mp3");///讀入檔案,小心執行目錄 (in....)
myMP3.Play();///播放
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week12 Sound");
glutMouseFunc(mouse);
glutDisplayFunc(display);
glutMainLoop();
}
鍵盤鋼琴:
#include <stdio.h>
#include <GL/glut.h>
#include <windows.h>
#include <mmsystem.h>
#include "CMP3_MCI.h"
CMP3_MCI myMP3;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
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);
}
void mouse(int button, int state ,int x ,int y)
{
if(state==GLUT_DOWN) PlaySoundA("Sword.wav",NULL, SND_ASYNC);
}
int main(int argc, char **argv)
{
myMP3.Load("BGM.mp3");
myMP3.Play();
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week12 Sound");
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glutDisplayFunc(display);
glutMainLoop();
}
用MP3簡化:
#include <stdio.h>
#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 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);
}
void mouse(int button, int state ,int x ,int y)
{
if(state==GLUT_DOWN) PlaySoundA("Sword.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("So12.wav");
myMP3.Load("BGM.mp3");
myMP3.Play();
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week12 Sound");
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glutDisplayFunc(display);
glutMainLoop();
}
沒有留言:
張貼留言