Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建CAF接收器?_Javascript_Chromecast_Google Cast - Fatal编程技术网

Javascript 如何创建CAF接收器?

Javascript 如何创建CAF接收器?,javascript,chromecast,google-cast,Javascript,Chromecast,Google Cast,最近,谷歌将其cast接收器升级到V3版本 谷歌演示页面中有一个简单的演示,如下所示: <html> <head> </head> <body> <cast-media-player id="player"></cast-media-player> <style> #player { --theme-hue: 210; --splash-image: url("my

最近,谷歌将其cast接收器升级到V3版本

谷歌演示页面中有一个简单的演示,如下所示:

<html>
<head>
</head>
<body>
  <cast-media-player id="player"></cast-media-player>
  <style>
    #player {
        --theme-hue: 210;
        --splash-image: url("my.png");
    }
  </style>
  <script type="text/javascript" src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
  </script>
  <script>
    const context = cast.framework.CastReceiverContext.getInstance();
    const playerManager = context.getPlayerManager();

    // intercept the LOAD request to be able to read in a contentId and get data
    playerManager.setMessageInterceptor(
        cast.framework.messages.MessageType.LOAD, loadRequestData => {
            if (loadRequestData.media && loadRequestData.media.contentId) {
                return thirdparty.getMediaById(loadRequestData.media.contentId)
                .then(media => {
                  if (media) {
                    loadRequestData.media.contentUrl = media.url;
                    loadRequestData.media.contentType = media.contentType;
                    loadRequestData.media.metadata = media.metadata;
                  }
                  return loadRequestData;
                });
            }
            return loadRequestData;
        });

    // listen to all Core Events
    playerManager.addEventListener(cast.framework.events.category.CORE,
        event => {
            console.log(event);
        });

    const MyCastQueue = class extends cast.framework.QueueBase {
        initialize(loadRequestData) {
            const media = loadRequestData.media;
            const items = [];
            items.push(myCreateItem(media)); // your custom function logic

            const queueData = new cast.framework.messages.QueueData();
            queueData.items = items;

            return queueData;
        }

        nextItems(itemId) {
           return [myCreateNextItem()]; // your custom function logic
        }
    };

    const playbackConfig = new cast.framework.PlaybackConfig();

    // Sets the player to start playback as soon as there are five seconds of
    // media contents buffered. Default is 10.
    playbackConfig.autoResumeDuration = 5;

    const myCastQueue = new MyCastQueue(); // create instance of queue Object

    context.start({queue: myCastQueue, playbackConfig: playbackConfig});
  </script>
</body>
</html>

#玩家{
--主题色调:210;
--启动图像:url(“my.png”);
}
const context=cast.framework.castrecivercontext.getInstance();
const playermanger=context.getplayermanger();
//拦截加载请求,以便能够读入contentId并获取数据
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD,loadRequestData=>{
if(loadRequestData.media&&loadRequestData.media.contentId){
返回第三方.getMediaById(loadRequestData.media.contentId)
。然后(媒体=>{
if(媒体){
loadRequestData.media.contentUrl=media.url;
loadRequestData.media.contentType=media.contentType;
loadRequestData.media.metadata=media.metadata;
}
返回loadRequestData;
});
}
返回loadRequestData;
});
//聆听所有核心事件
playerManager.addEventListener(cast.framework.events.category.CORE,
事件=>{
console.log(事件);
});
const MyCastQueue=类扩展了cast.framework.QueueBase{
初始化(loadRequestData){
const media=loadRequestData.media;
常量项=[];
items.push(myCreateItem(media));//自定义函数逻辑
const queueData=new cast.framework.messages.queueData();
queueData.items=项目;
返回队列数据;
}
nextItems(项目ID){
返回[myCreateNextItem()];//自定义函数逻辑
}
};
const playbackConfig=new cast.framework.playbackConfig();
//设置播放机在播放5秒后立即开始播放
//缓冲的媒体内容。默认值为10。
playbackConfig.autoResumeDuration=5;
const myCastQueue=new myCastQueue();//创建队列对象的实例
start({queue:myCastQueue,playbackConfig:playbackConfig});
发件人:

但是当我调试它时,出现了一个错误,
“第三方”未定义


有人能告诉我如何创建CAF接收器吗?

这是示例代码。你应该自己提供这些额外的功能

该示例显示了如何覆盖排队系统以执行基于接收者的排队。这不是一个很好的例子,因为它没有提供异步获取基于服务器队列的例子

如果不需要接收方管理的队列,可以从上一页显示的最小CAF接收方开始。这足以让远程调试器工作,这至少是拥有自定义接收器的一个好理由


我举了一个更完整的例子

基于此,如果遇到此类错误,您可能需要更新或重新安装GoogleCast扩展。请按照此文档查看更多信息。请提交一个错误:顺便说一句,文档中有错误,现在已修复。谢谢,我尝试了您的演示,并且效果良好。在Chromecast Receiver V3中,我们不再需要管理UI事件。SDK为我们处理它。太好了!伟大的很高兴它有用。你介意投票回答吗?对不起。谢谢你的反馈!声誉低于15的人所投的票将被记录,但不会改变公开显示的帖子分数。