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

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

我也是遇到这个问题,这是MCI的BUG,暂时应该无解,而且微软似乎没有打算修复这个问题,解决方法只能改用别的播放内核。MCI只有在获取可变码率的音频文件的长度时才会出现不准确的情况。能够过观察发现,MCI识别的长度误差满足下面的关系:MCI识别的长度/实际长度≈比特率/128。

1、添加MP3格式文件。打开软件后,点击初始界面左上方的“添加视频”按键,打开文件夹找到需要的mp3音乐并导入到软件上。有时浏览文件夹时没看到音乐文件,这时注意一下“打开”对话框下面的“文件类型”,可选是All Files(全部格式文件),或mp3格式。

2、点击“编辑”按钮。软件左上角的位置上的第二个按钮上,点击编辑按钮,然后就可以进到文件的编辑界面上,这是软件编辑文件的入口。

3、开始音频剪切编辑。点击主界面左上方的“视频编辑”按键即可进入编辑窗口。如图所示。可以手动在时间轴上用鼠标随意拖动左区间和右区间,两者之间的部分就是截取/剪切出来的音频了。如果需要精确的剪切,可以在“截取”项下面的菜单中,输入精确的开始时间和结束时间的数值。最后 “确定”保存并返回主界面。

4、然后再选择预置方案,即输出格式。单击“预置方案”右边的小倒三角,打开上拉菜单,根据需要选择音频格式,如果按原格式输出的话,就选择常见音频中的MP3-MPEG Layer-3 Audio (mp3) 流行的音频格式,具有很好的音质和很小的体积。

5、最后点击右下角的转换按钮,然后就可以在转换器的界面上看到转换完成后界面的提示,还可以直接点击打开目录按钮,直接找到编辑后的音乐文件。

这个问题你需要知道 matlab对音频文件的处理常用 *** 作;

matlab一般读取wav数据;

[data,fs,nbits] = wavread('testwav');---testwav文件名

则可知音频文件时长

t = (length(data(:,1))/fs)  (t单位:秒)

希望可以帮到你,有什么不懂的可以继续追问

MediaPlayer md = new MediaPlayer();

try {

LogUtilslog(EnvironmentgetExternalStorageDirectory() +"/123mp3");

mdsetDataSource(EnvironmentgetExternalStorageDirectory() +"/123mp3");

mdprepare();

LogUtilslog("size " + mdgetDuration());

} catch (Exception e) {

eprintStackTrace();

}

MediaPlayer 初始化 -> setDataSource->prepare-> 就可以获取到了getDuration() 单位是ms

你这个lenth变量不可能取得到值啊。

ValBack = mciSendString("status"+"song length", lenth,lenthLength, 0);

这一句你把lenth一个为""的值当作参数传给mciSendString,这是什么意思呢?

整个方法没有给lenth赋值的量,你再去取得它,它依然还是"",当然取不到了。

这个API函数不太常用,我帮你找了个详细的例子,你可以临摹一下。好好研究一下吧。

>

以上就是关于如何获取音频文件的准确时长,比如MP3全部的内容,包括:如何获取音频文件的准确时长,比如MP3、怎么获取一段mp3格式的音频的播放时长、如何利用matlab获取音频文件的时长等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9538579.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存