python - Vlc Python 绑定无法设置时间
问题描述
我正在尝试使用 VLC python 绑定从设定的时间播放视频。我是怎么做的 set_time
set_time(self, i_time, b_fast)
设置电影时间(以毫秒为单位)。如果没有媒体正在播放,这将无效。并非所有格式和协议都支持这一点。
参数:
b_fast - 更喜欢快速搜索或精确搜索。i_time - 电影时间(以毫秒为单位)。
回报:
0 表示成功,-1 表示错误。
但每次我这样做时,视频都会从头开始。
我尝试通过set_time(i_time=xx)
使用和不使用 i_time 来调用该函数。我试着给它几秒钟和几毫秒的时间,但没有运气。
当我初始化视频文件和播放视频文件但没有运气时,我也尝试过立即调用它。
我的代码:
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
解决方案
您可以向媒体添加一个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
推荐阅读
- python - 如何在图像库中找到相同/重复的图像
- python - 无法为非均匀离散变量采用逆 cdf
- c - Which gotoxy() function should I use?
- javascript - 嵌入 Twitch Player 正在小提琴中工作,但不在本地 html 文件中
- php - how to grab each value from input with jquery ajax when inputs are in a foreach loop
- c# - ML Agents - Multiple agents break the training
- javascript - 打破承诺链和异步等待
- java - 将 MySQL 连接器 Jar 链接到我的依赖项 Java Play Framework 1.x
- python - Converting user input to time and substracting it from main time
- xpath - 从实时网站将数据导入 Google 表格