windows现有的API似乎只支持播放wav格式的音频,mp3格式恐怕你得再去网上找找开源代码
// 播放音频 "1wav"#include <stdioh>
#include <windowsh>
#pragma comment(lib,"winmmlib")
int main()
{
PlaySound ("1wav",NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
getchar();
return 0;
}
#include <mmsystemh>
#pragma comment (lib, "winmmlib")
main()
{
mciSendString("play 1mp3 ", NULL, 0, NULL);//播放
}
#include "reg52h"
unsigned char Count;
sbit _Speak =P2^3 ; //讯响器控制脚
unsigned char code SONG[] ={ //祝你平安
0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,
0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,
0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,
0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,
0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,
0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,
0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,
0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,
0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,
0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,
0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,
0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,
0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00,
//路边的野华不要采
0x30,0x1C,0x10,0x20,0x40,0x1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,
0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,
0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,
0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
0x20,0x2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,
0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,
0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,
0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x15,0x1F,
0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,
0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,
0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,
0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,
};
void Time0_Init()
{
TMOD = 0x01;
IE = 0x82;
TH0 = 0xD8;
TL0 = 0xEF; //12MZ晶振,10ms
}
void Time0_Int() interrupt 1
{
TH0 = 0xD8;
TL0 = 0xEF;
Count++; //长度加1
}
/-------------------------------------------------
功能:1MS延时子程序
-------------------------------------------------/
void Delay_xMs(unsigned int x)
{
unsigned int i,j;
for( i =0;i < x;i++ )
{
for( j =0;j<3;j++ );
}
}
/-------------------------------------------------
功能:歌曲播放子程序i为播放哪一段曲目
-------------------------------------------------/
void Play_Song(unsigned char i)
{
unsigned char Temp1,Temp2;
unsigned int Addr;
Count = 0; //中断计数器清0
Addr = i 217;
while(1)
{
Temp1 = SONG[Addr++];
if ( Temp1 == 0xFF ) //休止符
{
TR0 = 0;
Delay_xMs(100);
}
else if ( Temp1 == 0x00 ) //歌曲结束符
{
return;
}
else
{
Temp2 = SONG[Addr++];
TR0 = 1;
while(1)
{
_Speak = ~_Speak;
Delay_xMs(Temp1);
if ( Temp2 == Count )
{
Count = 0;
break;
}
}
}
}
}
/-------------------------------------------------
功能:主程序
-------------------------------------------------/
void main()
{
Time0_Init(); //定时器0中断初始化
while(1)
{
Play_Song(0); //播放
}
}
编译器 MS VC++ 60
已有 音频文件,例如 zzdwav (允许带路径,例如: "L:\\Li\\prog\\zzdwav" )
在程序开始播放音乐
在 while (1) { 这里 添 自己的程序 ,含程序结束的控制;}
例子:
#include <stdioh>
#include <windowsh>
#include <mmsystemh>
#pragma comment(lib, "winmmlib")
int main()
{
PlaySound (TEXT("zzdwav"), NULL, SND_ASYNC | SND_NODEFAULT);
while (1)
{
printf("program is running here\n");
Sleep(1000);
}
return 0;
}
用C语言播放音乐,一般需要额外的库或者调用系统的API函数。
以Windows为例,可以通过PlaySound函数播放wav格式的音乐。示例如下,代码在vc60中编译通过。
#include<stdioh>
#include<windowsh>
#include<mmsystemh>
#pragma
comment(lib,
"WINMMLIB")
int
main()
{
PlaySound(TEXT("1wav"),0,SND_FILENAME);
//1wav是要播放的音乐文件
return
0;
}
如果想播放mp3音乐可以使用如下代码。
注意:生成程序后,请在cmd中执行此程序,不要在vc/vs的IDE中运行。#include
<windowsh>
#include
<mmsystemh>
#include
<stdioh>
#pragma
comment(lib,
"Winmmlib")
int
main(int
argc,
char
argv[])
{
//绝对地址形式
TCHAR
fileName[]="ganlusimp3";
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 函数可以播放 wav 格式音乐。\x0d\例如 下面 播放 紫竹调wav 格式音乐,它存放在 D:\\zzz\\zzdwav \x0d\其它音乐格式能不能播放,要试验一下才知道,也许不行,也许可以。\x0d\#include \x0d\#include \x0d\#include \x0d\#pragma comment(lib, "winmmlib")\x0d\\x0d\void main(){\x0d\PlaySound (TEXT("D:\\zzz\\zzdwav"), NULL, SND_ASYNC | SND_NODEFAULT);\x0d\ \x0d\while (1) \x0d\{\x0d\ printf("program is running here\n"); //这里跑你的程序,按 Ctrl-C 组合键,结束程序。\x0d\ Sleep(1000); //休息1秒\x0d\}\x0d\\x0d\exit(0);\x0d\}
以上就是关于C语言如何播放mp3格式音乐全部的内容,包括:C语言如何播放mp3格式音乐、C语言怎么调用windows系统播放器播放指定路径的MP3音乐文件、求单片机 音乐播放的c代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)