2021年5月8日 星期六

本人發言不代表本人立場 week10

主題:背景音樂

 1.播放聲音

  • 還沒有放到執行目錄,所以只有系統音效

#include<windows.h>
int main()
{   ///執行目錄     ///空指標  ///要等同步
    PlaySound("shot.wav", NULL, SND_SYNC);
}
 

  • 找音源檔,一定要wav檔 
  • 讓多個音源一起播放(輸入完數字按enter鍵) 
#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)

#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)///按數字鍵
{
    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);
}
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10 playsound");

    glutDisplayFunc(display);
    glutKeyboardFunc( keyboard);
    glutMainLoop();
}
 
執行結果:


 

  • 用MP3放背景,同時可以按數字播音樂

#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");

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

  •  加上滑鼠播聲音

#include <windows.h>
#include <GL/glut.h>
#include"CMP3_MCI.h"
CMP3_MCI 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);
}

void mouse(int button, int state, int x, int y)
{
    if(state==GLUT_DOWN) PlaySound("shot.wav", NULL, SND_ASYNC);
}///按下滑鼠有聲音

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

{
    mp3.Load("music.mp3");
    mp3.Play();
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week10 playsound");

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

}

  •  編輯cbp檔,把資料夾路徑刪掉改成 .
  • 把音樂檔都移到專案檔


 

沒有留言:

張貼留言

距地表面160 Week11

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