I can reproduce the problem locally. I created a test case to work with it. I already noticed a problem when calling player.delete(), so might be a problem in the pulseaudio implementation. I will start tracing to see what is going on.
Rob Op woensdag 18 februari 2015 20:32:21 UTC+1 schreef Rob: > > The audio players use their own threading. In case of PulseAudio this is a > thread from libpulse. So the application event loop should not be > necessary. I did not have time to check it out yet, the current tests for > media playback do not work :-(. > > Rob > > Op woensdag 18 februari 2015 08:01:44 UTC+1 schreef Sebastian Meyer: >> >> I tried to put app.run() into its own thread. But it fails: >> >> from threading import Thread >> import pyglet >> >> class SoundThread(Thread): >> >> def __init__(self, pyglet): >> Thread.__init__(self) >> self.pyglet = pyglet >> >> def run(self): >> self.pyglet.app.run() >> >> sthread = SoundThread(pyglet) >> sthread.start() >> >> def play_sound(): >> path = "test.wav" >> source = pyglet.media.load(path, streaming=False) >> player.queue(source) >> >> If I call play_sound() it will play the sound once. Then, after it ended, >> following error occurs: >> >> ArgumentError: argument 2: <type 'exceptions.TypeError'>: expected >> CFunctionType instance instead of NoneType >> >> In the self.pyglet.app.run()inside the thread. >> >> >> >> I also make some tests with the code before adding the Thread and it >> seems that the first sound is played and the queque does not jump to the >> next if one is added to the queue. Reading player.source and player.time, >> after the sound is played one time, says: source last played source, time >> is the length of the audiofile. But it does not use the next source. I >> tried player.next_source(); player.play() if source is not None before >> adding to queue, but it makes no difference. >> >> /Sebastian >> >> Am Dienstag, 17. Februar 2015 22:52:52 UTC+1 schrieb Sebastian Meyer: >>> >>> No. For testing I loaded all Sounds as pyglet.media.StaticSound into a >>> dict and call it from there. Same there: only the first sound works. >>> Maybe the missing pyglet-loop because I don't run pyglet.app.run() ? >>> >>> Am Dienstag, 17. Februar 2015 22:40:46 UTC+1 schrieb Richard Jones: >>>> >>>> Does pre-loading all the sounds make a difference? >>>> >>>> On Wed Feb 18 2015 at 8:21:19 AM Sebastian Meyer < >>>> [email protected]> wrote: >>>> >>>>> Hmm, ok that sounds possible. >>>>> I tried this: >>>>> >>>>> player = pyglet.media.Player() # init player >>>>> player.play() # let player play >>>>> >>>>> def play_sound(name): >>>>> path = name + ".wav" >>>>> source = pyglet.media.load(path, streaming=False) >>>>> print "Playing sound!", name >>>>> player.queue(source) >>>>> >>>>> >>>>> This works for exactly one sound. The second call of the function >>>>> brings the print-statement but no sound. >>>>> Did I missunderstand something? >>>>> I tried also a player.play() after adding the source to the queue - >>>>> same result. >>>>> >>>>> Thanks, >>>>> Sebastian >>>>> >>>>> >>>>> Am Dienstag, 17. Februar 2015 17:05:43 UTC+1 schrieb Rob: >>>>> >>>>>> I suspect a new player is created for every sound. The player >>>>>> registers a stream. As long as the player is not destroyed, the stream >>>>>> remains active. Try if you can control a single player: >>>>>> http://pyglet.readthedocs.org/en/pyglet-1.2- >>>>>> maintenance/programming_guide/media.html >>>>>> >>>>>> Rob >>>>>> >>>>>> Op dinsdag 17 februari 2015 11:36:41 UTC+1 schreef Sebastian Meyer: >>>>>>> >>>>>>> Hi there! >>>>>>> >>>>>>> I have a small project which uses pyQt for the GUI. It is >>>>>>> OS-independent and I want to add some sound-notifacation on it. >>>>>>> After some searching I decided the best solution to have >>>>>>> OS-independent sound-output is using pyglet for it. And it works great. >>>>>>> >>>>>>> But there is one problem: >>>>>>> I'm using Linux with KDE and the mixer for adjusting the >>>>>>> volume-level shows a modulator for every program that plays sound. >>>>>>> But for my programm it shows a new regulator everytime I use pyglet >>>>>>> to play a sound. So after the first sound, there appears one, after the >>>>>>> second there are two and so on. >>>>>>> >>>>>>> I'm playing the sound as descripted here: >>>>>>> http://www.pyglet.org/doc/programming_guide/playing_ >>>>>>> sounds_and_music.html >>>>>>> >>>>>>> Any ideas? >>>>>>> >>>>>>> Cheers >>>>>>> Sebastian >>>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "pyglet-users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at http://groups.google.com/group/pyglet-users. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.
