【问题标题】:How do you tell if a HTML5 video is a live stream or just a video from Javascript?您如何判断 HTML5 视频是实时流还是只是来自 Javascript 的视频?
【发布时间】:2019-07-26 07:57:36
【问题描述】:

为 YouTube 创建一个 JavaScript Chrome 扩展,我想在其中判断视频是实时流还是只是流。

查看HTML5 documentation,我尝试了ondurationchange,但没有成功。还尝试查看“Live”元素是否在 YouTube HTML 中,但无论如何它似乎总是存在:

var live = document.getElementsByClassName('ytp-live-badge');

【问题讨论】:

  • 直播和直播没有区别。您只需在 HTML 结构中寻找指示即可。
  • 你能得到视频的长度吗?也许您可以获取初始视频长度,然后设置一个定时事件以在几秒钟后再次检查长度,看看它是否改变了?

标签: javascript html youtube html5-video


【解决方案1】:

要检查 YouTube 上的视频是否为直播视频,您已经完成了对 .ytp-live-badge 元素的查询。你只需要检查它是否被禁用:

var liveBadge = document.querySelector('.ytp-live-badge');
var live = liveBadge && !liveBadge.getAttribute('disabled');
console.log(live);

【讨论】:

  • 行得通,谢谢!只是想知道,在 HTML5 API 中是否有一种通用的方法来做到这一点?
  • 不幸的是,我不认为有任何纯 HTML5 方法可以做到这一点。我相信,唯一的区别是也许用于获取数据的协议,这很不稳定(例如,我认为您可以拥有基于 HTTP 的实时流,然后您必须基于文件扩展名的假设)。而且,无论如何,我认为您无法在 YT 上确定这一点,因为 <video> src 是一个 blob: URL,没有任何协议/URL 信息。
猜你喜欢
  • 2011-12-16
  • 1970-01-01
  • 2012-09-05
  • 1970-01-01
  • 2021-05-27
  • 2013-07-02
  • 2016-02-03
  • 2012-01-30
  • 1970-01-01
相关资源
最近更新 更多