Музыка в pygame играет, но звуковые объекты не [дублируются]

Я пытался использовать 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(), чтобы убедиться, что было достаточно времени для завершения воспроизведения звука, но все равно ничего.

У вас есть идеи, что мне искать?

платформа представляет собой Raspberry Pi под управлением Wheezy

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

Можете ли вы подсказать, как я могу заставить это работать или что мне следует проверить, чтобы узнать, почему это не работает?

Ваше здоровье


person user2904928    schedule 21.10.2013    source источник
comment
Некоторые ответы на stackoverflow.com/questions/2936914/ может помочь   -  person ninMonkey    schedule 22.10.2013


Ответы (1)


pygame.mixer.Sound() не воспроизводится с _ 2_ модуляpygame.mixer.music.
Вам понадобится tp вызвать play() Звук для начала воспроизведения:

jump = pygame.mixer.Sound(os.path.join('data','scream.wav'))
jump.play()
person Rabbid76    schedule 18.12.2020