imetting_backend/app/utils/audio_parser.py

39 lines
856 B
Python
Raw Permalink Normal View History

2025-12-26 08:58:36 +00:00
"""
音频文件解析工具
用于解析音频文件的元数据信息如时长采样率编码格式等
"""
2025-12-27 07:30:24 +00:00
from tinytag import TinyTag
2025-12-26 08:58:36 +00:00
def get_audio_duration(file_path: str) -> int:
"""
获取音频文件时长
2025-12-27 07:30:24 +00:00
使用TinyTag读取音频文件时长
2025-12-26 08:58:36 +00:00
Args:
file_path: 音频文件的完整路径
Returns:
音频时长如果解析失败返回0
支持格式
- MP3 (.mp3)
- M4A (.m4a)
- MP4 (.mp4)
- WAV (.wav)
2025-12-27 07:30:24 +00:00
- OGG (.ogg)
- FLAC (.flac)
- 以及TinyTag支持的其他音频格式
2025-12-26 08:58:36 +00:00
"""
try:
2025-12-27 07:30:24 +00:00
tag = TinyTag.get(file_path)
if tag.duration and tag.duration > 0:
return int(tag.duration)
2025-12-26 08:58:36 +00:00
except Exception as e:
print(f"获取音频时长失败 ({file_path}): {e}")
2025-12-27 07:30:24 +00:00
return 0