python 获取音频长度(简单好用)

最近做一个项目,前端由于兼容性问题,无法获取正在播放的音频时长,所以只好由后端返回音频时顺便把音频长度一起返回给前端。

使用的是 eyeD3,python2.7。

首先安装eyeD3

pip install eyeD3==0.8.10

然后

import os

import eyed3


def get_voice_time_secs(file_data, file_name):
    """
    获取音频文件时长
    :param file_data 文件的二进制流
    :param file_name 文件名
    """
    # 先把文件保存在本地,我试过很多包,都需要先把文件保存在本地后才能获取音频长度,初步猜测是因为这些包的代码读取的是文件本地的信息
    with open(file_name, 'w+') as f:
        f.write(file_data)
    # 加载本地文件
    voice_file = eyed3.load(file_name)
    # 获取音频时长
    secs = int(voice_file.info.time_secs)
    # 删除本地文件
    os.remove(file_name)
    return secs

 

eyed3里还有很多其他信息

没有仔细去研究,有兴趣可以看官方文档https://eyed3.readthedocs.io/en/latest/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值