如何在所有操作系统中使用pygame播放声音?

时间:2017-05-03 11:12:24

标签: python windows ubuntu pygame

我写了一个python脚本来播放声音。

#!/usr/bin/python

import pygame
import time
def playNotificationSount():
    pygame.init()
    pygame.mixer.music.load("notification.mp3")
    pygame.mixer.music.play()
    time.sleep(10)
playNotificationSount()

它可以在ubuntu中播放声音,但在Windows中没有播放声音。它没有给出错误消息。 如何改进脚本以便它可以在所有操作系统中播放声音?

1 个答案:

答案 0 :(得分:0)

如果您想在不打开pygame窗口的情况下播放声音(或音乐),则必须在致电pygame.init()(或仅拨打pygame.mixer.init())之前致电pygame.mixer.init()。您必须这样做的原因我不清楚,但它确实有效。这是一个最小的例子:

import pygame


pygame.mixer.init()  # Initialize the mixer module.
sound1 = pygame.mixer.Sound('notification.mp3')  # Load a sound.

while True:
    inpt = input('Press enter to play the sound: ')
    sound1.play()  # Play the sound.
    print('Playing sound')

在普通游戏中,您必须先打pygame.display.set_mode()打开一个pygame窗口才能播放音乐或声音,并且您不必单独拨打pygame.mixer.init()。另外,如果声音出现问题,在pygame.mixer.pre_init(44100, -16, 2, 2048)之前调用pygame.init()会有所帮助。

import pygame


pygame.mixer.pre_init(44100, -16, 2, 2048)
pygame.init()
screen = pygame.display.set_mode((640, 480))

def playNotificationSound():
    pygame.mixer.music.load('notification.mp3')
    pygame.mixer.music.play()

playNotificationSound()