使用pygame.mixer加载音频

时间:2017-11-29 14:52:58

标签: python audio pygame mp3 mixer

我使用了之前的堆栈溢出帖子来帮助我开发以下代码:

import os
import pygame
from pygame import *
import sys

GAME_FOLDER = os.path.dirname(__file__)
IMG_FOLDER = os.path.join(GAME_FOLDER, "img")


from time import sleep
pygame.mixer.init()
pygame.mixer.music.load(os.path.join(IMG_FOLDER, 'Noota.mp3'))
print("p")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
    sleep(1)
print ("done")

虽然代码加载时没有显示错误消息,但它不播放音乐;相反,我所听到的只是一个“滴答作响”。噪音(每秒约一蜱)。我想知道是否有人知道为什么会这样,以及我如何解决它。

作为参考,我在mackintosh计算机上使用python 3,当使用媒体播放器加载时,音乐文件在计算机上播放。

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,您可以尝试将音频文件作为pygame.mixer.Sound加载,然后使用SoundName.play()检查其中mixer.load()是否已损坏 如果它仍然发生,那么它可能是音频文件的问题,请使用像.ogg这样的通用和最新格式,以便它适用于所有平台

此外,time.sleep()可能会弄乱声音,因为睡眠会停止每个功能,在这种情况下可能是声音。 下面是一个例子,如果你正在尝试声音方法:

import os
import pygame
from pygame import *
import sys

GAME_FOLDER = os.path.dirname(__file__)
IMG_FOLDER = os.path.join(GAME_FOLDER, "img")


from time import sleep
noota = pygame.mixer.sound(os.path.join(IMG_FOLDER, 'Noota.mp3'))
print("p")
noota.play()
# Maybe the music is being cut off here v
while pygame.mixer.music.get_busy():
    sleep(1)
print ("done")