【问题标题】:The video starts from the beginning when we set suburi当我们设置 suburi 时,视频从头开始
【发布时间】:2018-05-27 18:09:34
【问题描述】:
        self.player.set_state(Gst.State.READY)
        self.player.set_property("suburi", name)
        self.player.set_property("subtitle-font-desc", "Sans, 18")
        self.player.set_state(Gst.State.PLAYING)

当点击某个按钮时,上面的代码为处于播放状态的视频设置字幕。 当点击某个按钮时,我使用上面的代码将字幕设置为已经处于播放状态的视频。当我点击它时,会显示字幕;但视频不会从当前位置恢复;它重新开始。我还尝试了以下方法,

        _, duration = self.player.query_duration(Gst.Format.TIME)
        print(duration)
        self.player.set_state(Gst.State.NULL)
        self.player.set_property("uri", self.filename)
        self.player.set_property("suburi", name)
        self.player.set_property("subtitle-font-desc", "Sans, 18")
        self.player.set_state(Gst.State.PLAYING)
        self.player.seek_simple(Gst.Format.TIME, Gst.SeekFlags.FLUSH, duration)

即使这样也不寻求。有没有其他方法可以在不重新启动视频的情况下设置 suburi?

【问题讨论】:

  • 一开始为什么要改变状态?

标签: gstreamer python-gstreamer


【解决方案1】:

正如弗洛里安在他们的评论中指出的那样,没有必要改变状态。
只需设置属性suburi,尽管您可能还想查看设置flags 属性。
如:

self.player.set_property('flags', self.GST_VIDEO|self.GST_AUDIO|self.GST_TEXT|self.GST_SOFT_VOLUME|self.GST_DEINTERLACE)

当字幕开启
和:

self.player.set_property('flags', self.GST_VIDEO|self.GST_AUDIO|self.GST_SOFT_VOLUME|self.GST_DEINTERLACE)

当字幕关闭

商品及服务税属性声明为:

self.GST_VIDEO         = (1 << 0)
self.GST_AUDIO         = (1 << 1)
self.GST_TEXT          = (1 << 2)
self.GST_VIS           = (1 << 3)
self.GST_SOFT_VOLUME   = (1 << 4)
self.GST_NATIVE_AUDIO  = (1 << 5)
self.GST_NATIVE_VIDEO  = (1 << 6)
self.GST_DOWNLOAD      = (1 << 7)
self.GST_BUFFERING     = (1 << 8)
self.GST_DEINTERLACE   = (1 << 9)
self.GST_SOFT_COLORBALANCE = (1 << 10)

见:https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-playbin.html#GstPlayBin--flags

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2018-07-18
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多