通过 Chromecastcast_sender.js 进行流式传输时出错

问题描述 投票:0回答:1

根据教程添加镀铬。

添加 Chromecast 按钮后,单击它,从网络中选择一个可用设备,然后将其连接。浏览器中可以看到状态“Streaming”,实际上什么也没发生,除了控制台中出现以下错误:

TypeError: Cannot read property 'loadMedia' of null

代码:

    cast.framework.CastContext.getInstance().setOptions({
        receiverApplicationId: '111111',
        autoJoinPolicy: chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED
    });


    var currentMediaURL =
        'https://.....';
    var contentType = 'mp4';

            var mediaInfo = new chrome.cast.media.MediaInfo(currentMediaURL,contentType);
            var request = new chrome.cast.media.LoadRequest(mediaInfo);

            console.log('Below variable -mediaInfo ');
            console.log(mediaInfo);
            console.log('Below variable -request ');
            console.log(request);

            var castSession = cast.framework.CastContext.getInstance().getCurrentSession();
             console.log('Below variable -castSession ');
            console.log(castSession);

    castSession.loadMedia(request).then(
        function () {
            console.log('Load succeed');
        },
        function (errorCode) {
            console.log('Error code: ' + errorCode);
        });

代码测试:

据我了解,由于某种原因,流的链接未发送。 有一个有趣的问题,为什么流的链接会转到变量

contentid
,尽管有一个变量
contentUrl

javascript video-streaming chromecast
1个回答
0
投票
var castSession = cast.framework.CastContext.getInstance().getCurrentSession();

没有会话,因为您必须先从浏览器投射到电视。转换后,您需要运行该函数。但是,我不确定连接到接收设备后如何执行该功能。目前,我正在使用临时解决方案来确定原因。

setTimeout(() => {
    var castSession = cast.framework.CastContext.getInstance().getCurrentSession();
    var mediaInfo = new chrome.cast.media.MediaInfo(url, "video/mp4");
    var request = new chrome.cast.media.LoadRequest(mediaInfo);
    console.log(castSession);
    castSession.loadMedia(request).then(
        function () {
            console.log("Load succeed");
        },
        function (errorCode) {
            console.log("Error code: " + errorCode);
        },
    );
    var player = new cast.framework.RemotePlayer();
    var playerController = new cast.framework.RemotePlayerController(player);
}, 10000);
© www.soinside.com 2019 - 2024. All rights reserved.