首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-vlc:以编程方式退出播放器

python-vlc:以编程方式退出播放器
EN

Stack Overflow用户
提问于 2021-11-17 03:55:14
回答 1查看 447关注 0票数 0

我正在尝试使用VLC播放视频,并在视频结束后关闭窗口。但是,我不能关闭播放器窗口。我尝试释放播放器和媒体的实例,但不起作用。我在API文档中找不到任何其他东西。

注意,我不想在播放器结束后终止整个应用程序,所以sys.exit不是一个选项。

下面的代码就是我要做的。

代码语言:javascript
复制
import vlc

VIDEO_PATH="/path/to/video.mp4"

def get_end_callback(mediaplayer):
    def end_callback(event):
        print("End of playing reached")
        mediaplayer.stop()
        mediaplayer.get_media().release()
        mediaplayer.release()
        mediaplayer.get_instance().release()
    return end_callback

def play():
    vlc_instance = vlc.Instance(["--no-xlib"])
    media_player = vlc.MediaPlayer(vlc_instance, VIDEO_PATH)

    media_player.play()

    event_manager = media_player.event_manager()
    event_manager.event_attach(vlc.EventType.MediaPlayerEndReached, get_end_callback(media_player))

play()

input("press Enter to exit")

我正在用Ubuntu=20.04上的python=3.9python-vlc=3.0.12118vlc=3.0.9.2测试它。我还尝试了另一台安装了较旧操作系统和较旧VLC的计算机。

EN

回答 1

Stack Overflow用户

发布于 2021-11-17 06:54:54

因此,如果您不提供一个窗口,LibVLC将在其上生成一个可供绘制的窗口。你不会想要这样的,因为你不能很容易地管理它。

在调用media_player.play()之前,您需要使用窗口句柄调用media_player.set_hwnd(window.handle) (适用于Windows) / media_player.set_xwindow(window.xid) (适用于Linux)。

创建、管理和删除此窗口由您决定,它不一定是您的应用程序的主窗口。

在这里,您可以找到更完整但更简单的Qt和GTK框架https://github.com/oaubert/python-vlc/tree/master/examples示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69998754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档