音檔!!!!!
首先開啟glut專案檔,然後全部刪掉!
搜尋想要的wav音檔
把它下載下來丟到freeglut裡的bin
之後打上程式碼
執行程式就聽得到聲音嘍!
這邊附上程式碼
----------------------------------------
#include <stdio.h>#include <windows.h>///為ㄌ定義DWORD
///windows一定要在前面才可以
#include <mmsystem.h>///為ㄌ PlaySoundA()
int main(){
PlaySoundA("gun.wav", NULL , SND_SYNC );
printf("hyo");
}
----------------------------------------
點擊視窗然後發出聲音
一樣附上程式碼
----------------------------------------
#include <stdio.h>
#include <windows.h>///為ㄌ定義DWORD
#include <mmsystem.h>///為ㄌ PlaySoundA()
#include <GL/glut.h>
void display(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
void mouse(int button,int state, int x, int y){\
///點擊滑鼠發出聲音
if(state==GLUT_DOWN) PlaySoundA("gun.wav", NULL , SND_SYNC );
}
int main(int argc, char *argv[]){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Souuuuuuuuuuuuuuuuuuuuuuuuuuund!");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
----------------------------------------
用MP3播放
到moodle上下載CMP3_MCI.h
放到跟專案同一個目錄
下載一個MP3放到freeglut裡的bin
還有跟專案同一個目錄裡面
並打上程式碼讓他執行
----------------------------------------
#include <stdio.h>
#include <windows.h>///為ㄌ定義DWORD
#include <mmsystem.h>///為ㄌ PlaySoundA()
#include <GL/glut.h>
#include "CMP3_MCI.h"///雙引號:要在同一個專案目錄
CMP3_MCI myMP3;///宣告物件變數myMP3
void display(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
void mouse(int button,int state, int x, int y){\
///點擊滑鼠發出聲音
///if(state==GLUT_DOWN) PlaySoundA("gun.wav", NULL , SND_SYNC );///同步,等他播完
if(state==GLUT_DOWN) PlaySoundA("gun.wav", NULL , SND_ASYNC );///不同步,不等他播完
}
int main(int argc, char *argv[]){
myMP3.Load("jojo.mp3");///讀入檔案
myMP3.Play();///播放
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Souuuuuuuuuuuuuuuuuuuuuuuuuuund!");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
----------------------------------------
用notepad++打開專案檔
把工作的目錄都改成"﹒"
儲存後他會跑出這個畫面
點Yes後會無法執行
我們還做點更改
把freeglut的bin裡頭的音檔放到專案目錄裡
就可以執行了!
弄ㄍ鋼琴辣!
小葉教我們如何弄ㄍ鋼琴
程式碼給泥辣!
----------------------------------------
#include <stdio.h>
#include <windows.h>///為ㄌ定義DWORD
#include <mmsystem.h>///為ㄌ PlaySoundA()
#include <GL/glut.h>
#include "CMP3_MCI.h"///雙引號:要在同一個專案目錄
CMP3_MCI myMP3;///宣告物件變數myMP3
void display(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
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 );
}
void mouse(int button,int state, int x, int y){\
///點擊滑鼠發出聲音
///if(state==GLUT_DOWN) PlaySoundA("gun.wav", NULL , SND_SYNC );///同步,等他播完
if(state==GLUT_DOWN) PlaySoundA("gun.wav", NULL , SND_ASYNC );///不同步,不等他播完
}
int main(int argc, char *argv[]){
myMP3.Load("jojo.mp3");///讀入檔案
myMP3.Play();///播放
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Souuuuuuuuuuuuuuuuuuuuuuuuuuund!");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
----------------------------------------
因為上面那種方法一次只能播一個音
所以我們要讓他可以一次播很多ㄍ!
總之就是這樣這樣那樣那樣
給泥程式碼!
----------------------------------------
#include <stdio.h>
#include <windows.h>///為ㄌ定義DWORD
#include <mmsystem.h>///為ㄌ PlaySoundA()
#include <GL/glut.h>
#include "CMP3_MCI.h"///雙引號:要在同一個專案目錄
CMP3_MCI myMP3;///宣告物件變數myMP3
CMP3_MCI Do,Re,Mi,Fa,So;
void display(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
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 );
}
void mouse(int button,int state, int x, int y){\
///點擊滑鼠發出聲音
///if(state==GLUT_DOWN) PlaySoundA("gun.wav", NULL , SND_SYNC );///同步,等他播完
if(state==GLUT_DOWN) PlaySoundA("gun.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");
myMP3.Load("jojo.mp3");///讀入檔案
myMP3.Play();///播放
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Souuuuuuuuuuuuuuuuuuuuuuuuuuund!");
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
----------------------------------------















沒有留言:
張貼留言