怎么用c语言播放特定目录里的wav文件?

Python013

怎么用c语言播放特定目录里的wav文件?,第1张

用C语言播放音乐,一般需要额外的库或者调用系统的API函数

以Windows为例,可以通过PlaySound函数播放wav格式的音乐。示例如下,代码在vc6.0中编译通过。

#include<stdio.h>

#include<windows.h>

#include<mmsystem.h>

#pragma

comment(lib,

"WINMM.LIB")

int

main()

{

PlaySound(TEXT("1.wav"),0,SND_FILENAME)

//1.wav是要播放的音乐文件

return

0

}

如果想播放mp3音乐可以使用如下代码。

注意:生成程序后,请在cmd中执行此程序,不要在vc/vs的IDE中运行。#include

<windows.h>

#include

<mmsystem.h>

#include

<stdio.h>

#pragma

comment(lib,

"Winmm.lib")

int

main(int

argc,

char

*argv[])

{

//绝对地址形式

TCHAR

fileName[]="ganlusi.mp3"

TCHAR

shortName[MAX_PATH]

GetShortPathName(fileName,shortName,sizeof(shortName)/sizeof(TCHAR))

TCHAR

cmd[MAX_PATH+10]

wsprintf(cmd,"play

%s",shortName)

mciSendString(cmd,NULL,

0,

NULL)

Sleep(5

*

60

*

1000)

//这里是防止一播放就结束做的延迟

return

0

}

可以使用PlaySound()函数播放声音文件,

该函数原型位于#include <mmsystem.h>中,

函数原型为: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound)

参数pszSound是要播放声音的文件名,

只支持WAV等格式的文件

参数hmod是应用程序的实例句柄,一般传递NULL就可以;

参数fdwSound是标志的组合掩码,

可选值有SND_FILENAME、SND_ASYNC、SND_SYNC等。

SND_FILENAME表示pszSound参数指定的是文件名(pszSound还可以指定资源、内存音乐、系统音乐等等);

SND_ASYNC:用异步方式播放声音,PlaySound函数在开始播放后立即返回;

SND_SYNC:同步播放声音,在播放完后PlaySound函数才返回;

SND_LOOP一遍遍的重复播放声音,必须与SND_ASYNC标志一块使用。

【2、使用举例】

PlaySound(TEXT("C:\\WINDOWS\\Media\\Windows XP 启动.wav"),NULL,SND_FILENAME|SND_SYNC)