[英]How to play audio(in generator loop) with Pyglet?
pyglet 版本 - 1.4.2。
Python - 3.6.6
Ubuntu - 18.04
import pyglet
import time
pyglet.options['audio'] = ('openal', 'pulse', 'directsound', 'silent')
source = pyglet.media.StaticSource(pyglet.media.load('explosion.wav'))
def my_playlist():
while True:
print(time.time())
print(1)
yield source
player = pyglet.media.Player()
player.queue(my_playlist())
player.play()
pyglet.app.run()
代碼是根據文檔編寫的:
1566296930.8165386 # played once
1
1566296931.529639 # won't play
1
1566296931.5301056 # won't play and etc.
1
1566296931.5304687
1
1566296931.5309348
1
音頻應該與從生成器返回的聲音循環播放。
音頻播放一次。
我在這里做錯了什么以及如何達到預期的結果?
不確定您是否想要完成更多的事情,但是如果您的循環中所需要的只是循環聲音,則您實際上不應該使用任何類型的loop
。 相反,使用指定的EOS_LOOP標志/觸發器。
import pyglet
import time
pyglet.options['audio'] = ('openal', 'pulse', 'directsound', 'silent')
source = pyglet.media.StaticSource(pyglet.media.load('explosion.wav'))
player = pyglet.media.Player()
player.queue(source)
player.EOS_LOOP = 'loop'
player.play()
pyglet.app.run()
並且由於它已被棄用,您應該轉而使用帶有循環標志集的SourceGroup 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.