当前位置: 首页 > 面试题库 >

在Tkinter中播放视频文件的方法?

丌官哲彦
2023-03-14
问题内容

有没有办法播放AVI,MP4等视频文件?

我尝试使用PyMedia,但显然仅适用于Pygame。

我的问题有什么解决方案?


问题答案:

您可以使用它python-gstreamer来播放视频(这在Linux上适用于我,但在Windows上也应适用)。这需要python- gstreamerpython- gobject,我建议您使用此多合一安装程序。

这是代码:

import os
import sys
import Tkinter as tkinter

import gobject
import gst

def on_sync_message(bus, message, window_id):
        if not message.structure is None:
            if message.structure.get_name() == 'prepare-xwindow-id':
                image_sink = message.src
                image_sink.set_property('force-aspect-ratio', True)
                image_sink.set_xwindow_id(window_id)

gobject.threads_init()

window = tkinter.Tk()
window.geometry('500x400')

video = tkinter.Frame(window, bg='#000000')
video.pack(side=tkinter.BOTTOM,anchor=tkinter.S,expand=tkinter.YES,fill=tkinter.BOTH)

window_id = video.winfo_id()

player = gst.element_factory_make('playbin2', 'player')
player.set_property('video-sink', None)
player.set_property('uri', 'file://%s' % (os.path.abspath(sys.argv[1])))
player.set_state(gst.STATE_PLAYING)

bus = player.get_bus()
bus.add_signal_watch()
bus.enable_sync_message_emission()
bus.connect('sync-message::element', on_sync_message, window_id)

window.mainloop()


 类似资料:
  • 问题内容: 我需要播放一个avi视频文件并将其添加到jpanel。我需要做的就是从视频的开头到结尾播放,然后继续我的程序。我不需要任何搜索功能或类似的东西。最简单的方法是什么?如果可能的话最好不要使用xuggler 问题答案: 使用VLCJ可以很容易地将VLC播放器嵌入到swing应用程序中。这是一个工作示例:

  • 我想玩。iPhone应用程序中的mpd文件,为此我尝试了VLC播放器,但它没有按照预期工作,播放视频花费了太多时间。我还有其他选择吗。像Android中的exoplayer这样的mpd文件。 我已经为此目的实现了VLC媒体播放器,但现在我正在寻找另一种选择。如果有人对此有任何想法,请帮助。

  • 我在一个回收视图中有几张卡片。每张卡都有一个自定义视频视图。单击视频视图,视频应开始。然而,在我的例子中,它只显示蓝色边框,视频没有运行。代码如下所示, 自定义卡视图。xml: 自定义视频视图: 主要活动: activity\u main。xml: 我希望每张卡最初只显示一个缩略图。单击视频后,相关卡应启动视频(不是全部)。视频启动时,VideoView应占据整个屏幕。我怎样才能做到这一点? 谢谢

  • 问题内容: 我在android中实现了视频播放,这对android来说是全新的,这是我到目前为止收集的部分代码。 根据逻辑,它应该播放视频。不知道我在哪里做错了。 问题答案:

  • 问题内容: 我正在尝试使用Swift从服务器播放视频。 我已经导入了 MediaPlayer 框架,这是我的代码: 当我在模拟器中运行时,我只会看到一个黑匣子,但是无论从哪里尝试加载视频,都无法播放视频。 更新 这是当前代码 这段代码有趣地播放了大约2秒钟的视频,然后再次变黑! 问题答案: 更新2019,Swift 4: 在iOS 9.0中不推荐使用MPMovieControlStyle”:在AV

  • 我试图使用插件在flatter应用程序中播放vimeo视频,但没有成功,它抛出了大量错误。请帮助我如何在Flatter应用程序中实现这一点?使用webview或任何插件等?也许一段代码片段对我会有很大帮助! 这是我的代码片段 调试控制台中的错误- E/AccessibilityBridge(28662):VirtualView节点不能是根节点。E/ExoPlayerImplInternal(286