2021年5月3日 星期一

week10

今天要播音樂


放聲音!!!







#include <windows.h> int main() {///播放聲音("檔名.wav",空指標, 要等待同步) ///檔案要放在 (in C:\Users\Administrator\Desktop\freeglut\bin) 目標路徑 PlaySound("do.wav", NULL, SND_SYNC); PlaySound("re.wav", NULL, SND_SYNC); PlaySound("mi.wav", NULL, SND_SYNC); PlaySound("fa.wav", NULL, SND_SYNC); PlaySound("so.wav", NULL, SND_SYNC); }///太慢了..... 每個wav檔長度: 5秒
小葉傳給了我們do re mi fa so這五個音測試看看,這時候播放,每個音會相差五秒鐘

#include <windows.h> #include <stdio.h> int main() { while(1) { char c = getchar(); if(c=='1')PlaySound("do.wav",NULL,SND_ASYNC); if(c=='2')PlaySound("re.wav",NULL,SND_ASYNC); if(c=='3')PlaySound("mi.wav",NULL,SND_ASYNC); if(c=='4')PlaySound("fa.wav",NULL,SND_ASYNC); if(c=='5')PlaySound("so.wav",NULL,SND_ASYNC); } }///要按ENTER鍵




那接下來就是更進階的了!!!不要案ENTER鍵!!













#include <windows.h> #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glutSolidTeapot(0.3); glutSwapBuffers(); } void keyboard( unsigned char key, int x, int y)///TODO3 {///TODO3 if( key== '1' ) PlaySound("do.wav", NULL , SND_ASYNC );///TODO3 if( key== '2' ) PlaySound("re.wav", NULL , SND_ASYNC );///TODO3 if( key== '3' ) PlaySound("mi.wav", NULL , SND_ASYNC );///TODO3 } ///不需要按ENTER了!! int main(int argc, char** argv) { glutInit( &argc, argv ); glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH ); glutCreateWindow("Week10 Sound 07361092"); glutDisplayFunc(display); glutKeyboardFunc(keyboard); ///TODO3 glutMainLoop(); }

接下來,我們想要把背景音樂和五個音一起同時撥放!!!!

#include <windows.h>
#include <GL/glut.h>
#include"CMP3_MCI.h" ///.h檔要放在專案目錄下
CMP3_MCI mp3;///宣告一個變數(MP3的變數)
void display()

{
    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("do.wav", NULL, SND_ASYNC);
    if(key=='2') PlaySound("re.wav", NULL, SND_ASYNC);
    if(key=='3') PlaySound("mi.wav", NULL, SND_ASYNC);
    if(key=='4') PlaySound("fa.wav", NULL, SND_ASYNC);
    if(key=='5') PlaySound("so.wav", NULL, SND_ASYNC);
}

int main(int argc, char *argv[])

{
    mp3.Load("music.mp3");///檔案放執行目錄....\freeglut\bin
    mp3.Play(); ///播放
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10 playsound");

    glutDisplayFunc(display);
    glutKeyboardFunc( keyboard);
    glutMainLoop();

}播放MP3也可以按123


接著讓滑鼠點擊播放音樂

#include <windows.h> #include <GL/glut.h> #include "CMP3_MCI.h" CMP3_MCI mp3; CMP3_MCI shot1,shot2,shot3; void display() { 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("do.wav",NULL,SND_ASYNC); if(key=='2')PlaySound("re.wav",NULL,SND_ASYNC); if(key=='3')PlaySound("mi.wav",NULL,SND_ASYNC); if(key=='4')PlaySound("fa.wav",NULL,SND_ASYNC); if(key=='5')PlaySound("so.wav",NULL,SND_ASYNC); } void mouse(int button,int state,int x,int y) { if(state==GLUT_DOWN && button==GLUT_LEFT_BUTTON) shot1.Play(); if(state==GLUT_DOWN && button==GLUT_MIDDLE_BUTTON) shot2.Play(); if(state==GLUT_DOWN && button==GLUT_RIGHT_BUTTON) shot3.Play(); } int main(int argc,char** argv) { shot1.Load("1.wav");shot2.Load("2.wav");shot3.Load("3.wav"); mp3.Load("music.mp3"); mp3.Play(); glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH); glutCreateWindow("week10 Sound"); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glutMouseFunc(mouse); glutMainLoop(); }
















沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...