Search code examples
pythonpyglet

Sound not playing fully?


The problem is when i play a sound it stops/cuts before finishing playing. (sound being under 1 second)

import pyglet
#from time import sleep

window = pyglet.window.Window()

# i use this for my code.
#pyglet.resource.path = ['/resources']
#pyglet.resource.reindex()
#bullet_sound = pyglet.resource.media("bullet.wav", streaming=False)
                                            ## streaming fix's an error message

bullet_sound = pyglet.media.load("/resources/bullet.wav", streaming=False)

@window.event
def on_key_press(symbol, modifiers):
    # sound only plays for a millisecond 
    bullet_sound.play()

    # this lets the sound complete
    #sleep(1)

    # also tried this with 'update()'
    #player.queue(bullet_sound)

#def update(dt):
#    player.play()
#pyglet.clock.schedule_interval(update, 1/120.0)

pyglet.app.run()

I can't seem to find anything about this when google searching. Sleeping makes the sound finish, so i suppose it has something to do with it dropping the sound prematurely. But how to i get it not to do so?

I even tried using the player, putting it in an update function and queuing it from the event, but that din't change anything.


Solution

  • Segmentation faults, sound cutting, too large exceptions, sound related issues on linux mint might be caused by Linux/PulseAudio, the fix is using OpanAL, installing(might be pre-installed on mint) then adding a line to use it after importing pyglet:

    pyglet.options['audio'] = ('openal', 'silent')