2

我一直在尝试使用 pyGame 播放声音,同时在后台循环播放音乐 -

我已经使用 Horts Jens 的演示代码对其进行了测试

import pygame
import os

pygame.mixer.pre_init(44100, -16, 2, 2048) # setup mixer to avoid sound lag
pygame.init()                              #initialize pygame

# look for sound & music files in subfolder 'data'
pygame.mixer.music.load(os.path.join('data', 'foxhaunt.ogg'))#load music
jump = pygame.mixer.Sound(os.path.join('data','scream.wav'))  #load sound
fail = pygame.mixer.Sound(os.path.join('data','fail.wav'))  #load sound

# play music non-stop
pygame.mixer.music.play(-1)
if "a" in answer:
        jump.play()
        print "playing jump.wav once"
    elif "b" in answer:
        fail.play()
        print "playing fail.wav once"
    elif "m" in answer:
        if pygame.mixer.music.get_busy():
            pygame.mixer.music.stop()
        else:
            pygame.mixer.music.play()
    elif "q" in answer:
        #break from gameloop
        gameloop = False
    else:
        print "please press either a, b, m or q and ENTER"

发生的事情是呼叫pygame.mixer.music.play(-1)工作正常,我听到音乐,但是呼叫jump.play()fail.play()没有做任何事情。我什至尝试在通话后延迟sound>.play()以确保有足够的时间完成声音播放 - 但仍然没有。

你对我应该寻找什么有想法吗?

该平台是运行 Wheezy 的 Raspberry Pi

pygame: 1.9.1release+dfsg-8 - python2.7-pygame python2.6-pygame

你能建议我如何让它工作或我应该检查什么以找出它为什么不工作?

干杯

4

1 回答 1

0

Apygame.mixer.Sound()不玩pygame.mixer.music.play()pygame.mixer.music模块。
您需要调用Soundplay()开始播放:

jump = pygame.mixer.Sound(os.path.join('data','scream.wav'))
jump.play()
于 2020-12-18T09:48:25.597 回答