前情提要
這禮拜上內容的都跟聲音有關
以下截圖請自行想像他有聲音
拜託啦
Part1.
這禮拜玩聲音
音檔須為wav檔
並且放在freeglut的bin資料夾裡
輸入數字撥放音檔
Part2.
把上一part的輸入數字改成按下數字鍵
上程式碼
#include <windows.h>
#include <GL/glut.h>///使用GLUT外掛
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
void keyboard(unsigned char key,int x,int y)
{
if(key=='1')PlaySound("ahoy.wav",NULL,SND_ASYNC);
if(key=='2')PlaySound("mdfk.wav",NULL,SND_ASYNC);
if(key=='3')PlaySound("faq.wav",NULL,SND_ASYNC);
if(key=='4')PlaySound("shut.wav",NULL,SND_ASYNC);
if(key=='5')PlaySound("wry.wav",NULL,SND_ASYNC);
}
int main(int argc, char *argv[])///main()函式
{
glutInit(&argc, argv);///(1)Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
glutCreateWindow("08160280蔡承泰");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備display()函式
glutKeyboardFunc(keyboard);
glutMainLoop();///(5)主要程式
}
#再次麻煩觀看者想像一下他有聲音
Part3.
外掛CMP3_MCI就可以撥放mp3檔#include <windows.h>
#include <GL/glut.h>///使用GLUT外掛
#include "CMP3_MCI.h"///檔案放在week10_sound
CMP3_MCI mp3;///宣告變數
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
void keyboard(unsigned char key,int x,int y)
{
if(key=='1')PlaySound("ahoy.wav",NULL,SND_ASYNC);
if(key=='2')PlaySound("mdfk.wav",NULL,SND_ASYNC);
if(key=='3')PlaySound("faq.wav",NULL,SND_ASYNC);
if(key=='4')PlaySound("shut.wav",NULL,SND_ASYNC);
if(key=='5')PlaySound("wry.wav",NULL,SND_ASYNC);
}
int main(int argc, char *argv[])///main()函式
{
mp3.Load("ahoy.mp3");///檔案放執行目錄freeglut/bin
mp3.Play();///播放
glutInit(&argc, argv);///(1)Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
glutCreateWindow("08160280蔡承泰");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備display()函式
glutKeyboardFunc(keyboard);
glutMainLoop();///(5)主要程式
}
Part4.
除了按數字鍵播音樂
加上滑鼠左鍵中鍵右鍵也可以
上程式碼
#include <windows.h>
#include <GL/glut.h>///使用GLUT外掛
#include "CMP3_MCI.h"///檔案放在week10_sound
CMP3_MCI mp3;///宣告變數
CMP3_MCI ahoy,shut,faq;
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景
glutSolidTeapot(0.3);
glutSwapBuffers();///更新畫面
}
void keyboard(unsigned char key,int x,int y)
{
if(key=='1')PlaySound("ahoy.wav",NULL,SND_ASYNC);
if(key=='2')PlaySound("mdfk.wav",NULL,SND_ASYNC);
if(key=='3')PlaySound("faq.wav",NULL,SND_ASYNC);
if(key=='4')PlaySound("shut.wav",NULL,SND_ASYNC);
if(key=='5')PlaySound("wry.wav",NULL,SND_ASYNC);
}
void mouse(int button, int state, int x, int y)
{
if(state==GLUT_DOWN&&button==GLUT_LEFT_BUTTON) ahoy.Play();
if(state==GLUT_DOWN&&button==GLUT_MIDDLE_BUTTON) shut.Play();
if(state==GLUT_DOWN&&button==GLUT_RIGHT_BUTTON) faq.Play();
}
int main(int argc, char *argv[])///main()函式
{
ahoy.Load("ahoy.mp3");///檔案放執行目錄freeglut/bin
shut.Load("shut.mp3");
faq.Load("faq.mp3");
glutInit(&argc, argv);///(1)Init初始化GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能
glutCreateWindow("08160280蔡承泰");///(3)建立GLUT視窗
glutDisplayFunc(display);///(4)準備display()函式
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();///(5)主要程式
}
#有啦有聲音啦不只有聲音你亂按時他還超嗨的





沒有留言:
張貼留言