2020年5月13日 星期三

是在哭逆鄧芷豪

主題:聲音、音效、音樂
1.播放 WAV檔















在網路上下載WAV檔 然後丟入freeglut/bin資料夾裡












#include <windows.h>

#include <mmsystem.h>
int main()
{
    PlaySoundA("檔名.wav",NULL,SND_SYNC);

}














做一個簡單的彈鋼琴遊戲
#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 sound");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();

}



2.播放 MP3檔

將CMP3_MCI.h拉進專案檔裡
然後把mp3檔丟進freeglut/bin











#include <windows.h>
#include <mmsystem.h>
#include <GL/glut.h>
#include "CMP3_MCI.h"
CMP3_MCI 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 sound");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();

}


3.GLUT .cbp 專案檔 的設定 (執行目錄、include/lib目錄、link lib檔)














用notepad++編輯專案中的cbp檔














修改裡面的working.dir














把freeglut/bin裡的freeglut.dll跟聲音檔丟到專案裡

沒有留言:

張貼留言