博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决通过MediaMetadataRetriever获取音频文件时长不准确的问题
阅读量:6503 次
发布时间:2019-06-24

本文共 641 字,大约阅读时间需要 2 分钟。

在Android中,获取音频文件的信息可以通过 MediaMetadataRetriever 这个类来获取,比如获取文件的时长,通过如下方法来获取:

MediaMetadataRetriever mmr = new MediaMetadataRetriever();try {    mmr.setDataSource(file.getFile().getAbsolutePath());    String strDuration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);    long duration = Long.valueOf(strDuration);}catch (Exception e){}

但是,通过这种方法获取的duration可能不准确,对于VBR格式的mp3,duration可能远远比真实的长度小。对于这个问题,可以用比特率和文件大小来计算:

long fileSize = file.getFile().length();long bitRate = Long.parseLong(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_BITRATE));long duration = (fileSize*8) /(bitRate);//单位,秒通过这种方式得到的duration值是比较准确的

转载地址:http://pcqyo.baihongyu.com/

你可能感兴趣的文章
两种不同的重置样式方法(normalize.css)
查看>>
微信公众号开发
查看>>
关于MarshalByRefObject的解释
查看>>
Database API
查看>>
hexo 添加标签
查看>>
【Kafka】
查看>>
WPF简单模拟QQ登录背景动画
查看>>
封装TeeChart控件
查看>>
关于Xcode的项目文件夹
查看>>
UT-Austin大学在Image search and large-scale retrieval方面的一系列papers
查看>>
demo03linearlayoutdemo;
查看>>
git revert和reset区别
查看>>
List集合remove元素的问题
查看>>
Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
查看>>
matlab 设定坐标比例
查看>>
elasticsearch 性能监控基础
查看>>
Spring Boot多数据源连接8小时后断开的问题解决(MySQL)
查看>>
glib 关系
查看>>
Theano - 导数
查看>>
js继承的实现方法
查看>>