一、长度
TCHAR listlen[256];
wsprintf(listlen,"status %s length",shortpath); //将命令送入listlen字符串中
TCHAR szLength[256]; //用于存放时间长度
mciSendString(listlen,szLength,sizeof(szLength)/sizeof(TCHAR),NULL); //szLength里面得到的就是音乐的长度。。但位是毫秒。
int longtime=atoi(szLength);//将得到的毫秒转化成整数
TCHAR time[100];
wsprintf(time,"%i:%i",int(longtime/1000/60),int(longtime/1000%60));//将毫秒转化成分:秒形式,此时time里面存放的就是以分:秒形式显示的数据
SetDlgItemText(hwnd,IDC_time,time); //将信息送到IDC_time对话框
二、当前时间
用播放音乐的函数mciSendString,用法(%s是歌曲路径):
mciSendString(status %s position, sPosition, 255,0);
long length_st=strtol(sPosition, NULL, 10);
得到的length_st就是当前的播放进度,单位是ms。
你可以设置一个定时器,每隔1s调用这个函数,就可以实现实时显示。
获取音频长度与播放进度
本文介绍了一种通过mciSendString函数获取音频文件长度及当前播放进度的方法,并提供了具体的代码实现过程。该方法适用于Windows平台下的多媒体应用程序开发。
4443

被折叠的 条评论
为什么被折叠?



