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();
}
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);絕對路徑
}
絕對路徑冗長但準確率高
相對路徑簡短但須設定好
#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();///播放
沒有留言:
張貼留言