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

怎么用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

}

这不是三言两语的事情,合作wav文件 *** 作并不简单。要研究好wav文件结构,读取文件头,再进行分析和 *** 作。

有两种办法:

1.连续播放,例如:

#include <stdio.h>

#include <windows.h>

#include <mmsystem.h>

#pragma comment(lib, "winmm.lib")

int main(){

    PlaySound("C:\\Users\\wang\\test1.wav", NULL, SND_FILENAME)

    PlaySound("C:\\Users\\wang\\test2.wav", NULL, SND_FILENAME)

    PlaySound("C:\\Users\\wang\\test3.wav", NULL, SND_FILENAME)

    return 0

}

2.系统自带的“windows movie maker”。运行windows movie maker,然后选择“导入音频或音乐”之后把你需要的文件添加进来。然后按照你自己需要排列的顺序把这些文件依次拖到下方的时间线上。然后点左上方的“文件”选项,最后保存电影文件即可。

可以使用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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7949856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存