如何使用pyglet API声音来播放声音文件的子集,例如从1秒到6秒钟的6秒声音片段?
我可以加载一个声音文件并播放它,并且可以寻找所需间隔的开始,但我想知道如何在指定的位置停止播放?
答案 0 :(得分:1)
pyglet似乎不支持设置停止时间。您的选择是:
答案 1 :(得分:0)
这种方法似乎有效:不是手动轮询当前时间以停止播放,而是使用pyglet时钟调度程序在给定间隔后运行一次停止回调。这对我的用例来说足够精确; - )
player = None
def stop_callback(dt):
if player != None:
player.stop()
def play_sound_interval(mp3File, start=None, end=None):
sound = pyglet.resource.media(mp3File)
global player
player = pyglet.media.ManagedSoundPlayer()
player.queue(sound)
if start != None:
player.seek(start)
if end != None and start != None:
pyglet.clock.schedule_once(stop_callback, end-start)
elif end != None and start == None:
pyglet.clock.schedule_once(stop_callback, end)
player.play()