我也是遇到这个问题,这是MCI的BUG,暂时应该无解,而且微软似乎没有打算修复这个问题,解决方法只能改用别的播放内核。MCI只有在获取可变码率的音频文件的长度时才会出现不准确的情况。能够过观察发现,MCI识别的长度误差满足下面的关系:MCI识别的长度/实际长度≈比特率/128。
调用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
mp3的话,右键属性里的详细信息里有写,一般也不会有错