将 JPEG 图像投射到 CAF 接收器应用程序

Posted

技术标签:

【中文标题】将 JPEG 图像投射到 CAF 接收器应用程序【英文标题】:Casting an JPEG image to CAF receiver app 【发布时间】:2017-11-04 16:00:05 【问题描述】:

我一直在努力将一个简单的图像发送到一个通用的、未经修改的、定制的 CAF 接收器应用程序 (https://developers.google.com/cast/docs/caf_receiver_basic)

尝试将其作为通用媒体发送,具有不同的元数据类型、不同的媒体类型...但没有成功。

我收到错误“[cast.framework.PlayerManager] Load failed: Cannot read property 'tracks' of null”或“[cast.receiver.MediaManager] Load metadata error: Error

使用相同的代码但使用默认接收器 (receiverApplicationId: chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID) 加载图像可以正常工作。投射 MP4 视频也没有任何问题。

var castSession = cast.framework.CastContext.getInstance().getCurrentSession();
var mediaInfo = new chrome.cast.media.MediaInfo(imgUrl, 'image/jpeg');
mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
mediaInfo.metadata.metadataType = chrome.cast.media.MetadataType.PHOTO;
mediaInfo.metadata.type = chrome.cast.media.MetadataType.PHOTO;


var request = new chrome.cast.media.LoadRequest(mediaInfo);
castSession.loadMedia(request).then(
    function()  console.log('Load succeed'); ,
    function(errorCode)  console.log('Error code: ' + errorCode); 
);

【问题讨论】:

【参考方案1】:

试试这个(刚刚让它工作,所以如果你还在寻找它可能会有所帮助):

var castSession = cast.framework.CastContext.getInstance().getCurrentSession();
var mediaInfo = new chrome.cast.media.MediaInfo(imgUrl, 'image/jpeg');
var metadata = new chrome.cast.media.PhotoMediaMetadata();
metadata.title = "Title text";
metadata.metadataType = chrome.cast.media.MetadataType.PHOTO;
mediaInfo.metadata = metadata;        
var request = new chrome.cast.media.LoadRequest(mediaInfo);
castSession.loadMedia(request).then(
    function()  console.log('Load succeed'); ,
    function(errorCode)  console.log('Error code: ' + errorCode); 
);

【讨论】:

以上是关于将 JPEG 图像投射到 CAF 接收器应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何将数千个图像文件移动到每个包含 400 个图像文件的子文件夹中?

Chromecast 从电脑投射图像

如何将我的自定义接收器 chromecast(CAF)的媒体播放器更改为另一个播放器

一个应用程序是不是可以有多个 CastOptionsProvider,作为投射到 2 个不同的接收器应用程序的一种方式?

将视频和视频广告从 Android 手机投射到电视上

CAF 接收器的 CORS 要求是不是已更改?