Vlc Python 绑定无法设置时间

Vlc Python Bindings unable to set time

我正在尝试使用 VLC python 绑定播放设定时间的视频。我是如何做的是使用 set_time

set_time(self, i_time, b_fast)

Set the movie time (in ms). This has no effect if no media is being >played. Not all formats and protocols support this.

Parameters:

b_fast - prefer fast seeking or precise seeking. i_time - the movie time (in ms).

Returns:

0 on success, -1 on error.

但每次我这样做时,视频都会从头开始。

我试过在有和没有 i_time 的情况下通过 set_time(i_time=xx) 来调用该函数。我尝试通过给它几秒和几毫秒来给它一个时间,但没有成功。

我也尝试过在初始化视频文件和播放视频文件时立即调用它,但没有成功。

我的代码:

  Instance = vlc.Instance()
  player = Instance.media_player_new()
  Media = Instance.media_new(self.video)
  player.set_media(Media)
  time = None

  ...
  ...

  time = int(matches[0].start.total_seconds() * 1000) 
  # matches[0] = Subtitle(index=1, start=datetime.timedelta(0, 33, 843000), end=datetime.timedelta(0, 38, 97000), content='this is a sentence', proprietary='')
  # matches[0].start.total_seconds() = 33.843

  player.play()
  print(player.set_time(time))

我希望视频从设定的时间开始,但每次我打印 player.set_time() 它 returns None

您可以向媒体添加 start_time 选项,或者稍等片刻等待播放开始,然后使用 set_time 选项。
这是 Media.add_option 版本。

import vlc
import time
url = "file:///home/rolf/GWPE.mp4"

playing = set([1,2,3,4])
instance=vlc.Instance()
player=instance.media_player_new()
media = instance.media_new(url)
media.add_option('start-time=600.00') # 600 seconds (10 minutes)
player.set_media(media)
player.play()
time.sleep(0.1) # wait briefly for it to start
while True:
    state = player.get_state()
    if state not in playing:
        break