2023年4月26日 星期三

Orangutan - 第十一週 - 鍵盤、聲音(wav,mp3)

 

=========================================================================

ELEVENTH


一、鍵盤


1.開一個新的GLUT專案,並命名為week11-1_keyboard

2.以下為上方程式碼
#include <GL/glut.h> void display() { glutSolidTeapot(0.3); glutSwapBuffers(); } void keyboard(unsigned char key, int x, int y) { if(key==27) exit(0);///學習自GLUT專案的範例 }///ESC就會結束 int main(int argc,char**argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH); glutCreateWindow("week11"); glutDisplayFunc(display); glutKeyboardFunc(keyboard);///今天新教的 glutMainLoop(); }

3.按下ESC就會結束,並回傳值


二、音樂


1.開一個GLUT新的專案,並命名為week11-2_keyboard_wav_PlaySound

2.從(一)的鍵盤程式碼做修改,以下為修改的部分
if(key=='1') PlaySound("C:\\Users\\Administrator\\Desktop\\do_re_mi\\do.wav",        NULL,SND_ASYNC); if(key=='2') PlaySound("C:\\Users\\Administrator\\Desktop\\do_re_mi\\re.wav",            NULL,SND_ASYNC); if(key=='3') PlaySound("C:\\Users\\Administrator\\Desktop\\do_re_mi\\mi.wav",        NULL,SND_ASYNC);

3.只要在執行的時候按下鍵盤123就會有do re mi的音效

4.開一個新的空白檔案,並命名為week11-3_PlaySound.cpp
將下方程式碼打上
#include <windows.h> int main() { ///要等待同步 SND_ASYNC PlaySound("C:\\Users\\Administrator\\Desktop\\do_re_mi\\do.wav", NULL,SND_SYNC); PlaySound("C:\\Users\\Administrator\\Desktop\\do_re_mi\\re.wav", NULL,SND_SYNC); PlaySound("C:\\Users\\Administrator\\Desktop\\do_re_mi\\mi.wav", NULL,SND_SYNC); }

5.在執行前要記得先到Settings=>Compiler裡面加上能讓PlaySound正常運作的咒語

6.在Linker settings中的Link libraries加入winmm

7.將原來的程式碼PlaySound函式部分修改為以下程式碼,由絕對路徑變成相對路徑
                         ///要等待同步 SND_ASYNC PlaySound("do_re_mi\\do.wav", NULL,SND_SYNC); PlaySound("do_re_mi\\re.wav", NULL,SND_SYNC); PlaySound("do_re_mi\\mi.wav", NULL,SND_SYNC);

8.開一個GLUT新的專案,並命名為week11-4_glut_mp3

9.將CMP3_MCI.h檔放入目前專案的資料夾

10.在專案中找到main函式,並加上以下程式碼
#include "CMP3_MCI.h" ///要使用另一個外掛 CMP3_MCI myMP3; ///要宣告一個變數 char filename[] = "C:\\Users\\Administrator\\Desktop\\do_re_mi\\suzumi.mp3"; myMP3.Load(filename); ///myMP3.Load("檔名.mp3");讀入mp3檔 myMP3.Play();///播放

11.將week14-4_glut_mp3資料夾中的week11-4_glut_mp3.cbp檔案用nopad++開起來

12.將其中的working.dir中的路徑改為 . 並儲存

13.將原來的程式碼修改成以下程式碼
myMP3.Load("suzumi.mp3"); ///相對路徑 myMP3.Play();///播放
///簡單的方法 要將專案的工作執行目錄 working.dir 設到現在目錄,參考12

14.將suzumi.mp3放到專案目錄中

15.將freeglut.dll放到專案目錄中

16.最後執行時就能聽到音樂了


三、上傳檔案的注意事項

1.在.gitignore 裡面,要備份 .dll 檔案,所以要加上 # 不要擋他
2.因為我們希望也備份 libfreeglut.dll 以及 opencv的 .dll 才能讓程式執行

步驟:
1.先clone 再編輯 .gitigonre
2.整理今天程式碼的4個程式
3.git add .
4.git commit -m week11 (之前要git config --global 設定2個東西)
5.git push
























沒有留言:

張貼留言