● 获取音频时长的几种解决方案
需求:上传文件到七牛服务器,获取音频时长。
因为我们公司后端服务器传文件到七牛特别慢,最后决定由前端服务器上传文件,后端只负责获取网络音频时长。
以下是在网上搜集到的一些解决方案,和自己写的代码罗列一下。
1、it.sauronsoftware 网络音频需要暂存为本地文件
2、jaudiotagger isoparser 支持mp3,mp4,mov,m4a,wav 格式文件。和第一种一样,网络音频需要暂存为本地文件。
3、 jlayer 网络音频无需暂存为本地文件,便可获取,速度快。但是亲测有误差。
4、jaudiotagger 获取本地mp3格式文件一个比较简单的方法。
5、获取wav音频时长,支持本地和网络音频
6、获取七牛网络音频时长
其中:1,2 支持本地和网络音频文件,网络文件需要暂存为本地文件,这个过程耗时。1、发现一个mp3格式,
计算的时长不准确,flac文件无法得出结果。2、没有使用,未知。
3、网络文件无需暂存为本地文件,很快,但是都有误差。
4、5 只支持一种格式。没有使用,具体未知。
最后考虑我们公司项目的音频文件都是传到七牛云上。一般云存储都有获取文件详细信息的api。
故采用了第6种,获取网络文件比较快,而且准确。如果是别的云存储,应该也可以找到对应的api.
其他具体支持哪些格式,未测。