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里还有很多其他信息

python 获取音频长度(简单好用)_第1张图片

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

你可能感兴趣的:(python 获取音频长度(简单好用))