如何获取音频文件的准确时长,比如MP3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取音频文件的准确时长,比如MP3相关的知识,希望对你有一定的参考价值。

用过mciSendCommand(wDevice,MCI_STATUS,MCI_STATUS_ITEM, (DWORD) (LPMCI_STATUS_PARMS)&StatusParms);可是获取的时长有时不准确,我一个MP3文件明明是1分钟,可是用这个方法得到的是4分钟 ,请问还有其他方法能够得到准确的时长信息吗?
我用同样的代码,在另外一台电脑上运行却可以获取真实时长,不知是哪里出的问题,请高手指教

我也是遇到这个问题,这是MCI的BUG,暂时应该无解,而且微软似乎没有打算修复这个问题,解决方法只能改用别的播放内核。MCI只有在获取可变码率的音频文件的长度时才会出现不准确的情况。能够过观察发现,MCI识别的长度误差满足下面的关系:MCI识别的长度/实际长度≈比特率/128。 参考技术A 调用js,如果是win7系统,把21改成27。
@ echo off
>"%tmp%\a.js" echo var f=new ActiveXObject("Shell.Application").NameSpace("D:\\新建文件夹");
>>"%tmp%\a.js" echo WSH.echo(f.GetDetailsOf(f.ParseName("a.mp3"),21));
for /f %%i in ('cscript //nologo "%tmp%\a.js"') do echo %%i
pause
参考技术B mp3的话,右键属性里的详细信息里有写,一般也不会有错追问

我指的是用编程的方法获取“时长”这个信息 用在程序里的,并不是看一眼就算了

以上是关于如何获取音频文件的准确时长,比如MP3的主要内容,如果未能解决你的问题,请参考以下文章

怎么获取一段mp3格式的音频的播放时长

PHP获取音频mp3文件时长或音频文件其它参数属性

获取本地mp3音频文件时长

tp5引入第三方类 实现获取音频文件时长。

java获取MP3音频播放时长(总结)

java 获取音频视频文件时长代码示例