pygame音频播放速度
我有个简单的问题。
我在Linux上用pygame来播放一些音频文件。我有一些.wav格式的文件,但在播放的时候速度不对。
import pygame.mixer, sys, time
#plays too fast
pygame.mixer.init(44100)
pygame.mixer.music.load(sys.argv[1])
pygame.mixer.music.play()
time.sleep(5)
pygame.mixer.quit()
#plays too slow
pygame.mixer.init(22100)
pygame.mixer.music.load(sys.argv[1])
pygame.mixer.music.play()
time.sleep(5)
pygame.mixer.quit()
我在网上查了一些代码,但大家似乎都能正常使用默认参数来调用初始化函数。有没有其他人试过运行这个脚本,看看他们的表现是否一样?有没有人知道怎么加快播放速度?或者怎么为每个文件调整速度?
谢谢。
5 个回答
5
为了更好地理解Chris H 的回答,这里有一个关于如何使用 wave
库的例子。
import wave
import pygame
file_path = '/path/to/sound.wav'
file_wav = wave.open(file_path)
frequency = file_wav.getframerate()
pygame.mixer.init(frequency=frequency)
pygame.mixer.music.load(file_path)
pygame.mixer.music.play()
记住,如果你想要改变 frequency
或者在 pygame.mixer.init
中使用的其他参数,你必须先调用 pygame.mixer.quit
。可以查看Pygame 的文档了解更多信息。
5
我有一些mp3音频文件播放的时候速度变慢了。我用一个叫做mutagen的工具,更新了混音器的频率,让它根据mp3的采样率来调整,代码是这样的:
import pygame, mutagen.mp3
song_file = "your_music.mp3"
mp3 = mutagen.mp3.MP3(song_file)
pygame.mixer.init(frequency=mp3.info.sample_rate)
pygame.mixer.music.load(song_file)
pygame.mixer.music.play()
这样做之后,问题就解决了。
2
我搞明白了……有一个叫做波形模块的东西,你可以在这里找到它的介绍,它可以读取wav文件的采样率。