1

我实现了一个基本脚本来使用 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()

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

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

4

1 回答 1

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

于 2013-12-21T17:21:05.757 回答