Vlc Python绑定无法设置时间

时间:2019-07-19 13:03:19

标签: python python-3.x vlc

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

  

set_time(自我,i_time,b_fast)

     

设置电影时间(以毫秒为单位)。如果没有任何媒体正在播放,这将无效。并非所有的格式和协议都支持此功能。

     

参数:

     
    

b_fast-倾向于快速搜索或精确搜索。       i_time-电影时间(以毫秒为单位)。

  
     

返回:

     
    

0表示成功,-1表示错误。

  

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

我尝试通过在有和没有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()时,它都会返回None

1 个答案:

答案 0 :(得分:1)

您可以向媒体添加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