2016年5月2日 星期一

Week11電腦圖學_音效、音樂、鍵盤

Week11上課內容:

  • 音效、音樂
  • 鍵盤
  • 與產業接軌
          HoloLens再看一次
       
          履歷

  •  
課堂作業一:1行播音樂


開啟貝殼專案→下載Do Re Mi wav檔 
將檔案放進project資料夾裡
設定Build Option 加Link咒語:winmm
輸入程式碼:
↓↓↓

#include <iostream>
#include<windows.h>
#include<mmsystem.h>
using namespace std;

int main()
{
    int a;
    for(int i=0;i<10;i++){
    cout << "Hello world!" << endl;
    PlaySoundA("Do.wav",NULL, SND_ASYNC);
    cin>>a;
    }
    return 0;
}

跑出程式碼,只要輸入數字就會跑出聲音


課堂作業二:比較 ASYNC跟SYNC(同步跟非同步)
\

SYNC是同步
ASYNC非同步(不用等)

課堂作業三:加入鍵盤操作音樂

將Build Option設定好→Link咒語多加:freeglut opengl32 glu32 gdi32


輸入程式碼:

#include <iostream>
#include<windows.h>
#include<Gl/glut.h>
void display()
{

}
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("Sol.wav",NULL,SND_ASYNC);
    if(key=='6') PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7') PlaySound("Si.wav",NULL,SND_ASYNC);
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("3D sound version");
    glutDisplayFunc(display);

    glutMainLoop();
}

再將freeglut.dll放入project資料夾裡就可以跑程式了

跑出的程式會出現3D version的黑框或白框 在裡面按鍵盤1~7就會有聲音囉!


課堂作業四_播放MP3的音樂檔

將一個MP3檔下載並放入Project

將老師傳的CMP3_MCI也加入Project


輸入程式碼:
#include <GL/glut.h>
#include <windows.h>
#include <mmsystem.h>
#include "CMP3_MCI.h"
CMP3_MCI myMP3;
void display()
{

}
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("Sol.wav",NULL,SND_ASYNC);
    if(key=='6') PlaySound("La.wav",NULL,SND_ASYNC);
    if(key=='7') PlaySound("Si.wav",NULL,SND_ASYNC);
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("3D sound version");
    glutKeyboardFunc(keyboard);
    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
    myMP3.Load("gold.mp3");
    myMP3.Play();
    glutMainLoop();
}

輸入完就能跑出mp3的音樂囉!



沒有留言:

張貼留言