点击下载教程相关资源
我们可以通过 tech() 方法获取播放器的技术参数。传递任何参数都会使警告记录静默。
var myPlayer = videojs('some-player-id'); myPlayer.src({type: 'video/mp4', src: 'http://www.example.com/path/to/video.mp4'}); myPlayer.ready(function() { // tech() 无参数调用将输出警告日志 var tech = myPlayer.tech(false); });
注意:如果调用 tech() 方法时没有传递任何参数,将在 console 中打印如下警告信息:
VIDEOJS: WARN: Using the tech directly can be dangerous. I hope you know what you're doing. See https://github.com/videojs/video.js/issues/2617 for more info.
VIDEOJS: 警告: 直接使用该技术可能会有危险。希望你知道自己在做什么。更多信息,请参阅 https://github.com/videojs/video.js/issues/2617。
警告说明:
这是一个复杂的问题,值得解释一下...
在 4.x 中,我们混淆了播放器的私有属性(player.somethingPrivate_ --> player.a),包括技术。我们之所以将技术私有化,是因为开发人员在构建插件时不能将其锁定在特定技术上,这对 video.js 生态系统极为重要。相反,我们应该在播放器层面积极抽象视频播放概念,使它们在不同技术中都能正常工作。
多年来,我们一直通过抽象概念和允许用户将配置选项传递给技术人员(videojs.options.flash.foo = true)的组合来维持这一理念。然而,随着新的源处理程序接口以及将 HLS 和 DASH 等高级格式移入该模型,这一理念受到了压力,因为播放器用户(而非插件开发人员)希望控制这些格式及其运行的独特方面。
#2616 是第一步,它允许将配置选项传递给源处理程序。
对于更高级的运行时配置,我们希望给予技术和源处理程序 "经批准 approved" 的访问权限,以便用户只需配置格式,而无需发布要共享的插件。
我们设计的应用程序接口如下所示:
var tech = player.getTech({ IWillNotUseThisInPlugins: true });
如果不包含对象,就会发出 alert() 并抛出新的 Error()。发出警报的目的是为了通知那些可能没有打开控制台的最新开发人员。我们不想让人们为此感到沮丧,我们只是想确保他们了解情况。
警报和错误会显示如何禁用错误,并提供博文/问题的链接来解释这种情况。
如果您对函数或对象键命名有任何其他想法,请发表评论。