2016年5月2日 星期一

免洗餐具

C語言撥出音樂

1.音效、音樂

用C語言撥出音樂
首先先建立一個專案(不是glut)
函數庫中加入#include<windows.h>
                        #include<mmsystem.h>
播放聲音程式碼
    PlaySoundA("Do.wav",NULL,SND_ASYNC);"Do.wav"為聲音檔
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 piano!!!" << endl;
        PlaySoundA("Do.wav",NULL,SND_ASYNC);
        cin >>a;
    }

    return 0;
}


2.鍵盤



glut來建檔


不是來顯示東西所以glutDisplayFunc(display);為空值
***重點是"SND_ASYNC"這個東西
      若無ASYNC的"A"就是同步(要播完才可執行下一個)
          有ASYNC的"A"就是非同步(播後不理,可以重覆放)
函數庫要加入
freeglut
opengl32
glu32
gdi32
winmm


程式碼為:
#include <GL/glut.h>
#include <windows.h>
#include <mmsystem.h>
void display()
{

}
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("Sol.wav",NULL,SND_ASYNC);
    if(key=='6')PlaySoundA("La.wav",NULL,SND_ASYNC);
    if(key=='7')PlaySoundA("Si.wav",NULL,SND_ASYNC);

}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("3D window version");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);

    glutMainLoop();
}

3.MP3


程式碼為:
#include <GL/glut.h>
#include <windows.h>
#include <mmsystem.h>
//-----------------------------------------鍵入檔案開啟之資料庫
#include "CMP3_MCI.h"
//-----------------------------------------射一函數為 mymp3->就是int a的感覺
CMP3_MCI mymp3;
void display()
{

}
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("Sol.wav",NULL,SND_ASYNC);
    if(key=='6')PlaySoundA("La.wav",NULL,SND_ASYNC);
    if(key=='7')PlaySoundA("Si.wav",NULL,SND_ASYNC);

}
int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("3D window version");

    glutDisplayFunc(display);
    glutKeyboardFunc(keyboard);
//-----------------------------------------載入然後開始播
    mymp3.Load("Sadan.mp3");
    mymp3.Play();

    glutMainLoop();
}

沒有留言:

張貼留言