20210426 聲音&打光
今天學了要如何播放音樂
#include <windows.h>
int main()
{
PlaySound("pig.wav",NULL,SND_SYNC);
}
--------------------------------------------------------------------------------------------------------------------------
也可以用一樣的方式播很多段音樂
#include <windows.h>
int main()
{
PlaySound("so.wav",NULL,SND_SYNC);
PlaySound("mi.wav",NULL,SND_SYNC);
PlaySound("mi.wav",NULL,SND_SYNC);
PlaySound("fa.wav",NULL,SND_SYNC);
PlaySound("re.wav",NULL,SND_SYNC);
PlaySound("re.wav",NULL,SND_SYNC);
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);
PlaySound("so.wav",NULL,SND_SYNC);
PlaySound("so.wav",NULL,SND_SYNC);
}
--------------------------------------------------------------------------------------------------------------------------
因為音樂後面有一段沒聲音的部分
但用上面的方法就得等上一段完全播完才能播下一段
#include <windows.h>
#include <stdio.h>
int main()
{
///PlaySound("so.wav",NULL,SND_SYNC);///等待同步
char c;
while(1)
{
c=getchar();
PlaySound("so.wav",NULL,SND_ASYNC);///不等待同步
}
}
#include <windows.h>
#include <stdio.h>
int main()
{
///PlaySound("so.wav",NULL,SND_SYNC);///等待同步
char c;
while(1)
{
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);
///PlaySound("so.wav",NULL,SND_ASYNC);///不等待同步
}
}
接下來要讓圖跟音樂一起出現
#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_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10 sound");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
}
然後要加入用滑鼠播放聲音的功能
#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)
{///按下鍵盤即可播放聲音(wav檔)
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);
}
void mouse(int button,int state,int x,int y)
{///按下滑鼠即可播放槍聲(wav檔)
if(state==GLUT_DOWN) PlaySound("shot.wav",NULL,SND_ASYNC);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10 sound");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();
}
--------------------------------------------------------------------------------------------------------------------------











沒有留言:
張貼留言