MediaMetadataRetriever是Android原生的一个类,用于获取音视频文件的原信息如音乐时长等等。
API:http://www.android-doc.com/reference/android/media/MediaMetadataRetriever.html
最初的实现是这样的:
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
try {
mmr.setDataSource(path);//文件路径
} catch (Exception e) {
e.printStackTrace();
}
long time = Long.parseLong(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
time = time / 1000;
在本地环境下OK,但是在测试那边很奇怪地获取不到。于是尝试使用jaudiotagger实现与之类似的功能。
API:http://www.jthink.net/jaudiotagger/javadoc/index.html
参考了博客:https://blog.csdn.net/yj_vs_gy/article/details/47950263
但仅限于获取MP3格式的音乐文件的音乐时长,之后进行改进,使用其父类Au