C语言如何播放mp3格式音乐

C语言如何播放mp3格式音乐,第1张

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代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10061852.html

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

发表评论

登录后才能评论

评论列表(0条)

保存