首页 > 解决方案 > 如何直接从 chromecast 接收器加载元数据?

问题描述

我尝试使用以下代码将元数据从发送方发送到接收方,该代码运行良好。

const mediaInfo = new chrome.cast.media.MediaInfo(url, type);
/* --------------------------------------------- */
mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();
mediaInfo.metadata.metadataType = chrome.cast.media.MetadataType.GENERIC;
mediaInfo.metadata.title = title;
/* --------------------------------------------- */
const request = new chrome.cast.media.LoadRequest(mediaInfo);

但现在我试图在接收器本身内部进行 api 调用,并尝试直接从接收器本身加载元数据。

有没有办法做到这一点?如果是这样怎么做?我浏览了很多页面的 chromecast 接收器设置,但找不到这样做的方法。

非常感谢您的帮助。谢谢。

标签: chromecast

解决方案


您需要setMessageInterceptor在加载时使用并调用 api 并在 metaData 上设置数据并添加到loadRequestData

最后返回loadRequestData

        const context = cast.framework.CastReceiverContext.getInstance();
        const MediaMetadata = new cast.framework.messages.MediaMetadata()
        const playerManager = context.getPlayerManager();

    /* --------------------------------------------- */

        playerManager.setMessageInterceptor(
            cast.framework.messages.MessageType.LOAD, loadRequestData => {
                return fetch('thirdpartyapi')
                    .then(response => response.json())
                    .then(data => {

                            MediaMetadata.title = 'your.Title'
                            MediaMetadata.subtitle = 'your.Subtitle'
                       /* --------------------------------------------- */
                           loadRequestData.media.metadata = MediaMetadata
                       /* --------------------------------------------- */
                           return loadRequestData;

                    })
            });

推荐阅读