【问题标题】:Pyglet player won't playPyglet 播放器无法播放
【发布时间】:2013-06-13 22:46:40
【问题描述】:

我正在使用 pyglet 的 Player 类在 python 中编写音频播放器。这个模块只是对 Player 和 Source 类的测试,它什么也没产生。没有声音,没有错误,只有一个关于 vsync 的警告,可能与实际问题无关。

import pyglet.media as media
def main():
  fname='D:\\Music\\JRR Tolkien\\LotR Part I The Fellowship of the Ring\\01-- 0001 Credits.mp3'
  src=media.load(fname)
  player=media.Player()
  player.queue(src)
  player.volume=1.0
  player.play()
if __name__=="__main__":
  main()

另外,src.play() 也不做任何事情。我做错了什么?

编辑:我还确认 media.drivermedia.drivers.directsound 模块。我担心它正在使用silent

【问题讨论】:

    标签: python audio-streaming pyglet


    【解决方案1】:

    你必须以某种方式启动 pyglet 循环。除了绘制屏幕,​​调用事件处理程序并播放声音。

    import pyglet
    import pyglet.media as media
    def main():
        fname='D:\\test.mp3'
        src=media.load(fname)
        player=media.Player()
        player.queue(src)
        player.volume=1.0
        player.play()
        try:
            pyglet.app.run()
        except KeyboardInterrupt:
            player.next()
    
    if __name__=="__main__":
        main()
    

    类似的东西是可行的,但如果你使用 Pyglet 也肯定你会想要画一些东西。

    【讨论】:

    • 好的,我试过了,但现在它在player.play() 没有达到我在pyglet.app.run()player.next() 之后放置的打印语句后立即冻结,仍然没有错误。
    • 我现在在 Thread 中运行 pyglet.app.run 并连续打印 player.time 但显示为零,所以它根本不能播放。
    • 这个例子对我有用。尝试创建一个 pyglet 窗口,当您关闭窗口时,您的打印语句将到达。你有安装 AVBin 吗?它适用于 wav 文件吗?
    猜你喜欢
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多