pyglet - 为什么播放器不返回命令行?

时间:2013-09-04 05:59:23

标签: python-2.7 pyglet

我实现了一个使用pyglet播放歌曲的基本脚本。但是,我收到一个错误,控件没有返回到命令行,我必须按Ctrl + C。这可能会发生什么?

我的代码是:

import pyglet
song = pyglet.resource.media('g.wav', streaming = False)
song.play()
pyglet.app.run()
pyglet.app.exit()

我只是得到以下内容:

AL lib: pulseaudio.c:331: PulseAudio returned minreq > tlength/2; expect break up
OpenGL Warning: Failed to connect to host. Make sure 3D acceleration is enabled for this VM.

控件不会返回。

然而,当我添加:

win = pyglet.window.Window()

然后我得到一个可以关闭的窗口然后播放停止。

有人可以告诉我如何实现一段代码,在运行时和播放后播放文件,将命令返回到命令行吗?

1 个答案:

答案 0 :(得分:0)

您可以使用此代码播放声音并返回命令行。

import pyglet

music = pyglet.resource.media('sound.wav')
music.play()

def exit_callback(dt):
    pyglet.app.exit()

pyglet.clock.schedule_once(exit_callback , music.duration)
pyglet.app.run()

有关其工作原理的更多信息,您可以阅读其他问题: Pyglet sound playing on python