我是来自Flex / Actionscript星球的最近难民,仍在弄清楚基本知识,因此这可能是一个非常简单的问题。我对以下行感到困惑:
videojs("videoPlayer", {}, function(){}
尽管我成功地使用了它(下),但我并没有完全理解它。似乎是在引导全局
videojs
对象查找带有可选参数({})的id“ videoPlayer”实例,然后在该实例上调用匿名函数。我有那个权利吗?引起我困惑的是可选参数({})。我可以使用它来传递
src
和poster
并跳过该功能吗?此模式有名称吗,并且通用吗?如果这是重复的话,请随时对我大喊...
上下文:我正在使用
Electron
构建一个桌面应用程序来承载Timeline.js
,在其中我可以访问和显示本地.mp4文件。 Timeline.js
将iFrame
用作“包括任何所需内容”选项,因此我有一个“ video.html”文件作为iFrame的源。在时间轴的JSON中,我使用查询字符串将参数传递给Video.js
的iFrame<script>
function getParamValue(paramName) {
var url = window.location.search.substring(1);
var qArray = url.split('&');
for (var i = 0; i < qArray.length; i++) {
var pArr = qArray[i].split('=');
if (pArr[0] == paramName)
return pArr[1];
}
}
// grap the video & poster frame refs from url
var videoSrc = getParamValue('videoSrc');
videoSrc = "assets/videos/" + videoSrc;
var poster = getParamValue('poster');
poster = "assets/images/" + poster;
videojs("videoPlayer", {}, function(){
this.src(videoSrc);
this.poster(poster);
this.load();
});
</script>
我的Timeline.js JSON的代码段
"media": {
"caption": "caption",
"credit": "",
"url": "<iframe allowfullscreen
webkitallowfullscreen
src='video.html?videoSrc=Z.mp4&poster=W.jpg'
width='320' height='240'></iframe>",
},
最佳答案
这完全取决于videojs的实现。
second {} parameter是一个“空对象”,但可以根据需要传入其他参数。
third parameter(具有匿名功能的位置)是在videojs加载和初始化后运行的功能。
所有这些都在video js文档中进行了说明,但是由于您是javascript新手,所以我很原谅,因为“空对象{}”对于您来说可能是新概念,因为javascript文件需要花费一些时间才能异步加载,然后它们的代码当然要花一些时间进行初始化,因此在良好的第三方库中,通常会通过传入函数来实现“在初始化时运行此代码”的行为。
因此,是的,这是用于初始化第三方javascript库的相当普遍的实现“模式”,但我不认为它具有特定的名称。
关于javascript - 了解此模式:videojs(“videoPlayer”,{},function(){},我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41965209/