在linux下怎样用c语言获取MP3时长?最好有个例子!

在linux下怎样用c语言获取MP3时长?最好有个例子!,第1张

1、主要是要解析MP3格式,计算MP3文件长度,然后根据播放每帧需 26ms,计算出播放时间。文件IO读写,就用fopen\fread系列酒可以。

2、#include <mmsystem.h>//包括多媒体API,标准c语言没有相关接口函数

unsigned char str[256]

sprintf(timebuffer,"status %s position",MusicName)//timebuffer输出缓存区,格式字符串到timebuffer,MusicName为播放歌曲的完整路径

mciSendString(Music,str,256,NULL)//获取时间,单位为毫秒

curtime=atoi(str)/1000//单位化为秒,后面可以根据需要处理时间

Linux学习起来很自由的,所以你现在需要的是一份源码

Linux下这类的源码很多,比如mplayer。

源码中代码量可能很大,源码中你需要的部分对应你的问题,会有以下相应的代码。

第一步 用C去播放一个音频文件(如MP3)需要一个解码器,因为mp3是一种网络格式,经过压缩的。所以源码中会有encoder,decoder这样的解码器代码,解码出可以直接播放的格式。当然也可以装上别人的播放器内核,这样你只需要一个调用就可以播放了,剩下的就只是界面的开发。

第二步 你可能听说过KDE,GNOME这样的图形界面系统。它们支持的库分别是QT(c++),GTK(C),mplayer用的gtk。这两个库都是跨平台的,你可以把它们想象成MFC。有了这样的库就可以轻松做出界面了。

然后把这两步的代码用数据结构关联起来。点击按钮,回调去调用解码器然后播放,你自己的播放器就成功播放了。


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

原文地址: http://outofmemory.cn/yw/8985490.html

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

发表评论

登录后才能评论

评论列表(0条)

保存