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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章