我正在尝试创建一个brightcove视频播放器来播放约5个视频。我已经创建了这样的播放器:
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<object id="myExperience3775330164001" class="BrightcoveExperience">
<param name="bgcolor" value="#FFFFFF" />
<param name="playerID" value="2805093005001" />
<param name="playerKey" value="AQ~~,AAABnWrZY8k~,bg2iiZ4K32IcUpn85Gn5TF9lWzVxKnlO" />
<param name="isVid" value="true" />
<param name="isUI" value="true" />
<param name="dynamicStreaming" value="true" />
<param name="@videoPlayer" value="3775330164001" />
<param name="wmode" value="transparent" />
<!-- smart player api params -->
<param name="includeAPI" value="true" />
<param name="templateLoadHandler" value="onTemplateLoad" />
<param name="templateReadyHandler" value="onTemplateReady" />
<param name="templateErrorHandler" value="onTemplateError" />
</object>
<script type="text/javascript">brightcove.createExperiences();</script>
然后我试图通过调用loadVideoByID(12345)来替换视频......这是一个单独的js文件。
var player,
APIModules,
videoPlayer;
function onTemplateLoad(experienceID){
player = brightcove.api.getExperience(experienceID);
APIModules = brightcove.api.modules.APIModules;
console.log("template loaded...");
}
function onTemplateReady(evt){
videoPlayer = player.getModule(APIModules.VIDEO_PLAYER);
console.log("template ready...");
}
$( document ).ready(function(){
// this script switches videos when
$( '.mlink').on("click", ".choose-video", function(event){
event.preventDefault();
$id = $(this).data("id");
//console.log($id);
switchvids($id, videoPlayer);
});
});
var switchvids = function(id, vidplayer){
console.log(id);
console.log(vidplayer);
try{
vidplayer.loadVideoByID(id);
}
catch(error){
console.log(error);
}
};
当调用我的switchvids函数时,没有任何反应。没有视频启动,没有js错误。控制台显示正确的ID,并显示vidplayer是一个brightcove.api.modules.VideoPlayerModule。在网络面板中,我看到一个POST请求转到http://c.brightcove.com/services/messagebroker/amf?playerKey=AQ~~,AAABnWrZY8k~,bg2iiZ4K32IcUpn85Gn5TF9lWzVxKnlO并且响应返回但是它是Content-Length:26。这是某种失败的握手吗?以前有人见过这样的事吗?我唯一不确定的是视频ID。我从brightcove文档中删除了id。我不知道这是否是导致问题的原因。如果我试图使用我无权使用的视频,我认为有效载荷会包含错误消息。我的客户还没有向我提供使用的ID。
答案 0 :(得分:0)
loadVideoByID()
会返回false
。它不会引发错误。