Javascript 如何创建CAF接收器?
最近,谷歌将其cast接收器升级到V3版本 谷歌演示页面中有一个简单的演示,如下所示: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
<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的人所投的票将被记录,但不会改变公开显示的帖子分数。