定位到播放视频前的位置

3
我想在播放视频之前寻找到一个位置:
player= new VlcMediaPlayer(instance);
player->setPosition(pos);
player->setTime(time);
player->play();

但是它并没有起作用,我使用了这段代码:
player= new VlcMediaPlayer(instance);
player->play();
player->setPosition(pos);
player->setTime(time);

现在它可以工作了,但是首先会播放视频(并显示文件开头的一些帧),有没有办法在播放之前定位到某个位置?


尝试在设置位置/时间之前调用pause(),然后在之后调用play(),看看是否有帮助。 - Jonathan Potter
1个回答

2
我不知道 VlcMediaPlayer 是什么,但在 libvlc 中进行搜索是通过调用 libvlc_media_player_set_time 实现的。并且正如您在文档中所看到的,它需要在正在播放的视频上调用。因此,在调用 seek 之前,您必须先调用 play。但是您可以在 play 后立即 pause,然后再 seek。这应该能解决问题。 链接 到包含类似问题的 libvlc 论坛。

以上的解决方案都不起作用,它仍然播放文件的第一帧! - abdolahS
1
@abdolahS,嗯,你在这里没有太多选择。我唯一能提议的就是为VLC注册自己的回调函数,并且在某个标志位未设置时忽略帧,当标志位被设置时绘制帧。这样可以让你在播放时不产生任何图像。 - ixSci

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接