Javascript 使用brightcove播放器的未定义视频DTO

Javascript 使用brightcove播放器的未定义视频DTO,javascript,brightcove,Javascript,Brightcove,嗯,这里有个新手问题。。我按照这个例子尝试读取当前的视频DTO,以便在我的页面上显示该信息,但从JS中我无法获得视频DTO的有效值(对我来说,它总是未定义) 我已经使用自定义模块从videocloud创建了一个自定义模板,在启用API的情况下,自定义播放器和测试视频都可以正确播放 以下是我用于读取视频DTO的代码(请参阅“BCSmain.displayVideoInfo”方法): /**Brightcove服务模块****/ var BCS=(函数(){ //变数 var player, API

嗯,这里有个新手问题。。我按照这个例子尝试读取当前的视频DTO,以便在我的页面上显示该信息,但从JS中我无法获得视频DTO的有效值(对我来说,它总是未定义)

我已经使用自定义模块从videocloud创建了一个自定义模板,在启用API的情况下,自定义播放器和测试视频都可以正确播放

以下是我用于读取视频DTO的代码(请参阅“BCSmain.displayVideoInfo”方法):

/**Brightcove服务模块****/
var BCS=(函数(){
//变数
var player,
API模块,
视频播放器,
专家,
字幕事件,
内容事件,
提示点事件,
mediaEvent;
//公共职能和数据
返回{
/****模板加载的事件处理程序****/
onTemplateLoad:函数(experienceID){
//获取对播放器、API模块和事件的引用
player=brightcove.api.getExperience(experienceID);
APIModules=brightcove.api.modules.APIModules;
adEvent=brightcove.api.events.adEvent;
captionsEvent=brightcove.api.events.captionsEvent;
contentEvent=brightcove.api.events.contentEvent;
cuePointEvent=brightcove.api.events.cuePointEvent;
mediaEvent=brightcove.api.events.mediaEvent;
BCSmain.bcslog(“加载模板”);
},
/****模板就绪事件处理程序****/
onTemplateReady:功能(evt){
BCSmain.bcslog(“模板已准备就绪”);
//获取对模块的引用
videoPlayer=player.getModule(APIModules.VIDEO\u player);
//播放当前视频
视频播放器;
//显示视频信息
videoPlayer.getCurrentVideo(BCSmain.displayVideoInfo);
}
};
}());
/****Brightcove自定义模块****/
var BCSmain=(函数(){
//变数
//公共职能和数据
返回{
/****显示视频信息****/
显示视频信息:功能(videoDTO){
控制台日志(videoDTO);
displayInfo.innerHTML+=“关于此视频”;
displayInfo.innerHTML+=“标题:“+videoDTO.displayName+”

”; displayInfo.innerHTML+=”描述:“+videoDTO.shortDescription+”

”; BCSmain.bcslog(“视频信息已更新”); }, /****伐木****/ bcslog:功能(消息){ 如果(窗口[“控制台”]&控制台[“日志”]){ var d=新日期(); console.log(d+“:”+消息); } } }; }());
由于上面的脚本,displayVideoInfo方法正在执行。。videoDTO变量以“未定义”值结尾,因此displayInfo不会用视频信息更新


您知道是什么导致videoPlayer.getCurrentVideo方法的结果为“未定义”值吗?。这很奇怪,因为我从videoPlayer.getCurrentRendition获得了正确的值,并且事件被正确触发。任何帮助都将不胜感激,谢谢

我一直在寻找JavaScript源代码中的问题,但脚本似乎还可以。该问题与视频中存储的自定义字段“mp4 max rendition”和“Taxonomy Node Value”有关。每当我设置它们时,BrightcoveExperiences.js就会开始抱怨它们。在向brightcove报告问题后,他们给了我下面的解决方法,该方法适用于带或不带自定义字段的视频

 function onTemplateLoad(experienceID){
      player = brightcove.api.getExperience(experienceID);
      videoPlayer = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);
      // set up event listener for mediaChange event
      // NOT templateReady event would be too late for the first video
      videoPlayer.addEventListener(brightcove.api.events.MediaEvent.CHANGE, function(evt){
           // videoDTO object will be in evt.media property
           videoDTO = evt.media;
           console.log("videoDTO", videoDTO);
      });
 }
 function onTemplateLoad(experienceID){
      player = brightcove.api.getExperience(experienceID);
      videoPlayer = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);
      // set up event listener for mediaChange event
      // NOT templateReady event would be too late for the first video
      videoPlayer.addEventListener(brightcove.api.events.MediaEvent.CHANGE, function(evt){
           // videoDTO object will be in evt.media property
           videoDTO = evt.media;
           console.log("videoDTO", videoDTO);
      });
 }