如何在没有源代码的情况下播放html5播放器

时间:2018-07-28 12:51:38

标签: javascript html5 html5-video media-player video.js

我正在构建一个多媒体播放器,它需要控制一个页面上的多个其他多媒体播放器。为此,我想在页面底部有一个区域,其中包含一个媒体播放控制器(包括搜索栏),它将控制页面上的所有其他播放器。例如,当用户点击播放按钮时,页面上的所有其他播放器都开始播放。

我想使用常规的视频/音频播放器,但是除了播放真实内容,我想要的是拥有控件,尤其是前进的搜索栏。不自行实现播放控件的原因是,我想使用 video.js 插件的功能(如时间轴上的事件标记)。

我设法只显示 video.js 播放器和播放控件。另外,我设法设置了持续时间。问题是当我按下播放按钮或校准player.play()时,播放器无法播放。

这是因为播放器没有媒体源。没有媒体源,video.js和本机播放器将无法播放。

现在,有没有办法迫使玩家即使没有消息来源也可以玩游戏?我可以认为它有一个吗?

谢谢

2 个答案:

答案 0 :(得分:1)

这是图像的相同原理。如果某些内容没有图片,则需要制定备份计划:占位图片。

您可以对视频进行同样的操作。

最简单的解决方案是在您的项目目录中:

> placeholders
  |-- fakeVideo_short.mp4
  |-- fakeVideo-long.mp4
  |-- fakeAudio.mp3
  |-- ...

只要您的上层媒体控制器找到一个空播放器,您就可以向其提供占位符内容。

这是一个简单的解决方案,可让您更快地关注重要的需求:媒体控制器

如何检测玩家是否需要占位符?

好:

  1. 只要播放器完成/消费了一些内容,如果没有更多可用的内容,则可以将其用作占位符。
  2. app 的开头,如果播放器的数量超过内容的容量,则可以将空白内容(占位符)提供给空播放器。

答案 1 :(得分:0)

我想出了一个可行的解决方案。

再次目的是让video.js中的媒体控制器正常工作,而不加载任何媒体内容,而最重要的控制器是搜索栏。

我一直在玩 video.js ,并尝试在不加载任何媒体内容的情况下使搜索栏前进,并发现调用player.currentTime()实际上会更新{{1} }内部成员,但不更新UI。

最终,我发现为了使 video.js 更新用户界面,我们需要触发curretTime事件。

因此,我决定实现一个伪造的播放器,该播放器可以控制所有其他播放器,并使用 video.js 播放器作为其UI(通过仅显示媒体控件并隐藏视频)。 / p>

假冒玩家需要使用提到的精确计时器 here

概念示例:

timeupdate

该解决方案使我可以在没有视频的主时间轴中使用video.js插件!