视频无法有效地更改其“playbackRate”或当前时间位置

问题描述 投票:0回答:2

我正在尝试快进网站上的视频播放列表以解锁对下一个视频的访问。视频流无法快进、转发,而且我没有任何视频控制栏。我必须等待他们慢慢完成。当我刷新页面时,视频将从我之前离开的那一刻开始。 是相关的HTML代码。

查看视频事件,我发现它是流媒体视频的开源代码这个是我从 Firefox 调试器复制的整个相关代码(带有各种事件)。

这是我在 Firefox 控制台上尝试跳过视频的方法:

var video = videojs(document.querySelector("video"));
video.currentTime(video.duration());

但它就是不起作用(它将页面重新加载到同一个视频,基本上它不会解锁下一个)。

我还尝试使用以下代码来加快视频速度:

document.querySelector("video").playbackRate = 2;

它加速了,但一秒钟后视频停止了,当我刷新页面时,我加速的时间没有被保存。

如何有效快进/跳过?我不知道为什么会发生这种情况。

javascript jquery html5-video video.js
2个回答
1
投票

您正在访问的网站是一个在线学习平台,他们将内置控件来避免人们跳到前面 - 这是在线学习的相当标准。

他们可以通过多种方式做到这一点,例如:

  • 定期从浏览器报告进度,如果速度太快,请将视频重置回较早的点。
  • 监视服务器端的请求,如果请求表明视频移动速度过快,请重置客户端或使用较早的视频响应请求。

您可以研究网络流量,也许能够找到绕过其机制的方法。如果你正在学习 Javascript 或视频,这甚至可以说是对你时间的有用利用,尽管导师可能不会那样看,但如果他们内置了多个检查,这可能会很棘手。你也可能会错过一个机制这会在后台向导师标记您帐户上的活动,这可能不是您希望发生的事情......


0
投票

我能够按照此处详细说明解决此问题: 鉴于我在网上看到的内容,这应该对很多人有帮助:)

您必须将调用包装在超时中 - 可能是基于线程或计时问题。您可能需要调整超时

  const url = URL.createObjectURL(blob);
  audio.src = url;

  setTimeout(() => {
    audio.play();
    audio.playbackRate = Number(playbackRate);
  }, 200);
© www.soinside.com 2019 - 2024. All rights reserved.