我正在为项目实现自定义播放器。我首先想到的可能是我做的一些改变(虽然很小)但是在渲染HTML版本时所有玩家似乎都失败了。有没有人有任何启动和运行的经验,这是我第一次使用BrightCove。这是我的代码。播放器位于页面底部的模式中,并且一旦模式打开,动态抓取参考ID以加载视频。
HTML
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<object id="myExperience" class="BrightcoveExperience">
<param name="bgcolor" value="0x01000000" />
<param name="width" value="602" />
<param name="height" value="451" />
<param name="playerID" value="2346987014001" />
<param name="playerKey" value="AQ~~,AAAACNNhjOE~,7GG4lXihTUWE4HZdWRznisBnhfUh1o33" />
<param name="isVid" value="true" />
<param name="isUI" value="true" />
<param name="dynamicStreaming" value="true" />
<param name="includeAPI" value="true" />
<param name="forceHTML" value="true" />
<param name="templateLoadHandler" value="onTemplateLoad" />
</object>
<script type="text/javascript">brightcove.createExperiences();
</script>
<script language="JavaScript" type="text/javascript">
var player, modVP, expMod;
function onTemplateLoad(experienceID) {
player = brightcove.api.getExperience(experienceID);
modVP = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);
}
</script>
JS
var waitForModVp = function () {
if( typeof modVP == 'object' ) {
modVP.loadVideoByReferenceID(newSrc);
$(window).on('resize.size-video', function(){
expMod = player.getModule(brightcove.api.modules.APIModules.EXPERIENCE);
var width = window.innerWidth*0.8,
height = (window.innerWidth*0.8)*0.7491694352;
if (width < 610) {
expMod.setSize(width, height);
$('.fullscreen-interior-video').css({
'width' : width+'px',
'height' : height+'px'
});
}
})
} else {
window.setTimeout( waitForModVp, 250 );
}
}
if ( thisData.templateReference == "brightcovePlayer") {
waitForModVp();
}
非常感谢任何帮助,谢谢。
答案 0 :(得分:1)
我认为您还应该指定templateReady处理程序并将APIModules.VIDEO_PLAYER模块的初始化移动到该模块。这是一个非常常见的错误,只使用templateLoadHandler大部分时间都可以在桌面上运行,因此它可以吸引很多人使用移动设备。
请参阅http://support.brightcove.com/en/video-cloud/docs/getting-started-smart-player-api
中的以下注释重要提示:了解加载的模板与之间的区别 模板准备事件:
templateLoad:已收到播放器和API的所有数据 浏览器,你现在可以获得对整个播放器的引用( BrightcoveExperience) - 玩家还没有完全设置好, 如果你现在尝试在它上面调用任何方法,那么你就是 设立比赛条件
templateReady:玩家现在已经 完全实例化,并准备通过API与您进行交互 - 您 应该只在模板就绪后调用API模块的方法 事件已经解雇
为避免过早调用方法,可以跳过 templateLoad事件,只处理templateReady事件。该 这样做的缺点是玩家ID没有传递给 templateReady处理程序,因此您需要从发布中获取它 代码,以获得对播放器的引用。
答案 1 :(得分:0)
这似乎是个问题:
<param name="bgcolor" value="0x01000000" />
更改为:
<param name="bgcolor" value="#000000" />
该播放器现在可以在所有平台上运行。