簡體   English   中英

如何在 pyglet 2.0 中播放視頻?

[英]How to play videos in pyglet 2.0?

我正在使用需要 pyglet-2.0dev9 的 Python Arcade 編寫游戲,並嘗試在游戲關卡之間播放視頻。

首先,我嘗試從命令行運行 pyglet 的示例媒體播放器( https://github.com/pyglet/pyglet/blob/master/examples/media/media_player.py )。 當我安裝了 pyglet 1.5.21 時,它適用於我的 mp4 視頻文件,但適用於 pyglet 2.0-dev9 和 dev11 時它會失敗。 我解決了一個與顯示 GL 視頻控件相關的問題(我將這些注釋掉了),但現在我在運行它時得到了這個回溯:

  File "/Users/bernard/projects/gralli_quest/media_player.py", line 369, in on_draw
    video_texture.blit(self.video_x,
  File "/Users/bernard/.pyenv/versions/gralliq/lib/python3.9/site-packages/pyglet/image/__init__.py", line 1424, in blit
    pyglet.graphics.draw_indexed(4, GL_TRIANGLES, [0, 1, 2, 0, 2, 3],
  File "/Users/bernard/.pyenv/versions/gralliq/lib/python3.9/site-packages/pyglet/graphics/__init__.py", line 262, in draw_indexed
    glDrawElements(mode, len(indices), index_type, index_array)
  File "/Users/bernard/.pyenv/versions/gralliq/lib/python3.9/site-packages/pyglet/gl/lib.py", line 114, in errcheck
    raise GLException('(0x%x): %s' % (error, msg))
pyglet.gl.lib.GLException: (0x502): Invalid operation. The specified operation is not allowed in the current state.

我將 pyglet repo 中 dev7 標簽下的 media_player.py 版本與 master 中的版本進行了比較,結果是一樣的。 為 pyglet 嘗試了不同的視頻播放器示例腳本並得到了相同的結果。 我嘗試查找 pyglet 2.0 的文檔,但找不到它們。

任何幫助將不勝感激!

-伯納德

顯然,這已在github.com/pyglet/pyglet/issues/138等其他場景中出現,建議您運行test示例並使用python -m pyglet.info檢查執行結果。 問題鏈接中的Pyglet配置:

pyglet.options['audio'] = ('directsound', 'openal', 'pulse', 'silent')
pyglet.options['debug_font'] = False
pyglet.options['debug_gl'] = True
pyglet.options['debug_gl_trace'] = False
pyglet.options['debug_gl_trace_args'] = False
pyglet.options['debug_gl_shaders'] = False
pyglet.options['debug_graphics_batch'] = False
pyglet.options['debug_lib'] = False
pyglet.options['debug_media'] = False
pyglet.options['debug_texture'] = False
pyglet.options['debug_trace'] = False
pyglet.options['debug_trace_args'] = False
pyglet.options['debug_trace_depth'] = 1
pyglet.options['debug_trace_flush'] = True
pyglet.options['debug_win32'] = False
pyglet.options['debug_x11'] = False
pyglet.options['shadow_window'] = True
pyglet.options['vsync'] = None
pyglet.options['xsync'] = True
pyglet.options['xlib_fullscreen_override_redirect'] = False
pyglet.options['search_local_libs'] = True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM