|
|
import pygame |
|
|
import librosa |
|
|
|
|
|
def play_audio(audio_path, volume=0.7): |
|
|
pygame.mixer.init() |
|
|
try: |
|
|
pygame.mixer.music.load(audio_path) |
|
|
pygame.mixer.music.set_volume(volume) |
|
|
pygame.mixer.music.play() |
|
|
print(f"开始播放: {audio_path}") |
|
|
except pygame.error as e: |
|
|
print(f"播放音频文件时发生错误: {e}") |
|
|
|
|
|
|
|
|
|
|
|
def play_audio_until_end(audio_path, volume=0.7): |
|
|
pygame.mixer.init() |
|
|
try: |
|
|
pygame.mixer.music.load(audio_path) |
|
|
pygame.mixer.music.set_volume(volume) |
|
|
pygame.mixer.music.play() |
|
|
print(f"开始播放: {audio_path}") |
|
|
while pygame.mixer.music.get_busy(): |
|
|
pygame.time.Clock().tick(100) |
|
|
print("音频播放结束") |
|
|
except pygame.error as e: |
|
|
print(f"播放音频文件时发生错误: {e}") |
|
|
|
|
|
|
|
|
|
|
|
def get_length(audio_path): |
|
|
try: |
|
|
duration = librosa.get_duration(path=audio_path) |
|
|
print(f"音频时长: {duration} 秒") |
|
|
return duration |
|
|
except Exception as e: |
|
|
print(f"获取音频时长时发生错误: {e}") |