2023年4月26日 星期三

電腦圖學紀錄 鍵盤聲音滑鼠

 GLUT專案


week11-1_Keybord

基礎10行下去改

#include <GL/glut.h>

void display()
{
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}

void keyboard(unsigned char key, int x,int y)
{
    if(key==27)exit(594088);
}///Esc就會結束

int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week11");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}



今天一直下雨 不開心




week11-2_Keybord_Wav_PlaySound


#include<windows.h>
#include <GL/glut.h>

void display()
{
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}

void keyboard(unsigned char key, int x,int y)
{///兩個斜線(\\)=一個(\)
    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);
}

int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week11");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}



按數字鍵盤123會發出聲音




week11-3_PlaySound


一開始直接打會沒辦法執行 因為找不到 PlaySoundA
PlaySoundA() 其實在 winmm 裡面 所以要自己加 lib 咒語

OpenCV要3個咒語, GLUT要5個咒語, PlaySound要1個咒語

開啟settings--compiler
設定Linker setting



add winmm




 #include <windows.h>

 int main()
 {
                                            ///要等待同步 SND_ASYNC,不然會瞬間結束
    PlaySound("do_re_mi\\do.wav",NULL, SND_ASYNC);///相對路徑
    PlaySound("do_re_mi\\re.wav",NULL, SND_ASYNC);
    PlaySound("do_re_mi\\mi.wav",NULL, SND_ASYNC);
    ///PlaySound("C:\\Users\\Administrator\\Desktop\\do_re_mi\\mi.wav",NULL, SND_ASYNC);絕對路徑
 }


絕對路徑冗長但準確率高
相對路徑簡短但須設定好


播完後會回傳0




第11行跟21行的路徑改成.

成功存檔會是藍色


將老師傳的CMP3_MCI.h複製至week11-4資料夾


#include "CMP3_MCI.h"///要使用另一個外掛
CMP3_MCI myMP3;///宣告一個變數

int main(int argc, char *argv[])
{
    char filename []="C:/Users/Administrator/Desktop/do_re_mi/suzumi.mp3";
    myMP3.Load(filename);///讀入mp3
    myMP3.Play();///播放



會播放歌曲




沒有留言:

張貼留言