重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以使用PlaySound()函数播放声音文件,
成都创新互联公司长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为博爱企业提供专业的网站建设、成都网站设计,博爱网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
该函数原型位于#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);
用C语言播放音乐,一般需要额外的库或者调用系统的API函数。
以Windows为例,可以通过PlaySound函数播放wav格式的音乐。示例如下,代码在vc6.0中编译通过。
#includestdio.h
#includewindows.h
#includemmsystem.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;
}
调用DOS命令,让 Windows Media Player 帮你播放
下面播放 "zzd.wav"
你若有别的格式文件,Windows Media Player 能识别的都可以播放。
#include stdio.h
void play_wav(char *s){
char cm[100];
sprintf(cm,"mplay32.exe /play %s",s);
system(cm);
}
main()
{
char s[100]="zzd.wav";
play_wav(s);
getchar();
return 0;
}
代码如下:
#include windows.h
#include mmsystem.h
#pragma comment(lib, "WINMM.LIB")
/*播放音乐*/
void playMusic()
{
//aiyo.wav是放在代码文件中
PlaySound(TEXT("aiyo.wav"),0,SND_FILENAME | SND_ASYNC);
}
/**
* 主 函 数(音乐放第一排)
*/
void main()
{
playMusic();
title(); //欢迎界面上的标题
flower(); //打印字符画
welcome(); //欢迎界面上的选项菜单
}
扩展资料
C语言解析WAV音频文件:
C语言基本的二进制文件操作函数有fopen,fread等等。(注意是二进制文件操作函数,所以我们不讨论fgets,这是普通的文本文件操作函数)
fread是一个函数。从一个文件流中读数据,最多读取count个项,每个项size个字节,如果调用成功返回实际读取到的项个数(小于或等于count),如果不成功或读到文件末尾返回 0。
它的函数原型为
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
而且C语言还有一种类型叫做结构体,它在内存中是顺序存储的。刚好我们也已经得知了WAV文件在文件中的顺序以及该顺序中每个部分对应的含义。
那么我们可以事先根据前面所说的WAV文件结构来定义好一个struct,然后在main主函数中初始化这个struct,并且通过fread的第一个参数带入初始化好的这个struct,那么执行之后就会自动读取该文件,并且按照顺序自动把这些元数据填充进了我们初始化好的struct中。