2020年5月13日 星期三

Ting_u 電腦圖學week12

在GLUT裡面加音樂了~播放WAV檔.

#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專案檔裡。

順利執行~

沒有留言:

張貼留言