快速的问题.
我在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()
Run Code Online (Sandbox Code Playgroud)
我有ggogle代码搜索了一些东西但是每个人似乎都很好用默认参数调用init函数.其他人可以尝试运行此脚本并查看它们是否获得相同的行为?有人知道如何加快速度吗?或者调整每个文件的速度?
谢谢.
我有一些 mp3 音轨的播放速度变慢了。我使用诱变剂更新了基于 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()
Run Code Online (Sandbox Code Playgroud)
它解决了这个问题。
小智 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()
Run Code Online (Sandbox Code Playgroud)
请记住,如果您想更改frequency或使用的任何其他参数,pygame.mixer.init您必须先调用pygame.mixer.quit。Pygame 文档