There is a problem in the PulseAudioPlayer. One issue was the deletion of 
old players. I fixed that. The next is that it does not switch to the next 
SourceGroup when it is added with queue(). Still figuring that one out.

Rob

Op donderdag 19 februari 2015 20:15:48 UTC+1 schreef Rob:
>
> 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.

Reply via email to