pygame音频频率说明符不起作用

时间:2018-07-03 04:41:34

标签: python audio pygame

当我使用pygame播放mp3时,它们播放得太快。

我当然环顾四周,发现了同样的问题here。但不幸的是,该解决方案没有用。我知道mp3的编码频率为16000 Hz,我使用了诱变剂对此进行了验证。但是指定频率无济于事,实际上更改频率并不会改变播放速度

我还发现了this answer,它有效地建议了另一种初始化方法。但这对我也不起作用。

我以root身份运行python脚本,并使用USB声卡。我根据this answer编辑了alsa配置文件,将其设置为root的默认音频输出。然后,我正在使用此代码(或上述SO答案的变体):

pygame.mixer.init(frequency=16000)
pygame.mixer.music.load('myfile.mp3')
pygame.mixer.music.play()

即使我为频率使用不同的值,它也始终以两倍的速度播放。

~~~~~

这是更详细的代码:

import boto3
from io import StringIO
import json
import os.path
from contextlib import closing
from time import sleep
import pygame

pygame.mixer.pre_init(16000, -16, 2, 2048)
pygame.init()
#pygame.mixer.init(frequency=16000)

#pygame.mixer.quit()
#pygame.mixer.pre_init(16384, -16, 2, 1024*3)
#pygame.mixer.init()

def play_file(filename):
    pygame.mixer.music.load(filename)
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        sleep(0.1)

play_file('myfile.mp3')

0 个答案:

没有答案