#include <windows.h> ///為了下面認識DWORD
#include <mmsystem.h> ///裡面有 PlaySound
int main()
{///播聲音 正常的ASCII檔名, 空 , 聲音要同步。
PlaySoundA("ccheer.wav(記得要在Freeglut\bin裡)",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);///TOD2:鍵盤有函式
glutMainLoop();
}

現在我們要學習放mp3音樂檔~
先去Moodle下載CMP3_MCI.h
加 mp3.Load("music.mp3(檔名)");
mp3.Play();
要記得把CMP3_MCI.h移到Week12的Codeblocks專案裡。
也要記得把MP3放在Freeglut的bin資料夾裡。

但上面有個程式碼有個問題,無法放合弦。
如何解決?
上面設定:
CMP3_MCI Do, Re, Mi, Fa, So;///TODO4:有五個物件變數
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");///TODO4:五個物件變數,設好檔案

不懂為甚麼明明我們做的是CodeBlocks但執行卻不是在這邊執行?
所以我們要先去專案裡面用Notepad++去開啟Codeblocks專案檔,把上面的那個部分改掉。
就會顯示程式檔無法繼續,因為找不到freeglut.dll檔。
所以我們需要把檔案從freeglut裡移過去glut專案檔裡。

順利執行~

沒有留言:
張貼留言