【问题标题】:Chromecast session status returns undefined on Chrome mobile iOSChromecast 会话状态在 Chrome 移动 iOS 上返回未定义
【发布时间】:2023-03-07 12:47:01
【问题描述】:

Chromecast 会话状态在 Chrome 移动 ios 上返回未定义。会话存在并定义了其他属性,例如 sessionID。在桌面上,会话状态按预期返回“已连接”、“已断开”或“已停止”。这是 Chrome ios 的错误吗?是否有另一种方法来检测会话状态?

【问题讨论】:

    标签: javascript ios google-chrome mobile google-cast


    【解决方案1】:

    我找到了一个似乎足以满足我需求的解决方法。

    我获取 session.status 的设置:

    // create var to store 'fake' status
    var fakeStatus = 'none';
    
    // returns 'none' if no session exists 
    // else returns session.status
    // else if session.status is undefined && media.playerState exists return forceStatus
    castplayer.getSessionStatus = function(){ 
        return session?(session.status===undefined&&this.currentMedia.playerState?fakeStatus:session.status):'none'
    };
    

    在 chrome.cast.initialize 上创建会话时更新 fakeStatus:

    var apiConfig = new chrome.cast.ApiConfig(sessionRequest, sessionListener, receiverListener);
    chrome.cast.initialize(apiConfig, onInitSuccess, onInitError);
    
    function sessionListener(e){
        session = e;
        fakeStatus = 'connected';
        ...
    };
    

    使用会话的更新监听器更新 fakeStatus:

    chrome.cast.requestSession(onRequestSuccess, onRequestError);
    
    function onRequestSuccess(e) {
        session = e;
        session.addUpdateListener(updateListener);
        ...
    };
    
    function updateListener(isAlive) {
        if(isAlive) fakeStatus = 'connected'; else fakeStatus = 'disconnected';
        ...
    };
    

    确保将 fakeSatus 设置为 'none' 并在停止错误时取消会话:

    session.stop(onStopAppSuccess, onStopAppError);
    
    function onStopAppError(e) {
        fakeStatus = 'none';
        session = null;
        ...
    }
    

    【讨论】:

      【解决方案2】:

      Cast SDK 不支持 iOS 和 Android 上的 Chrome。

      【讨论】:

      • 实际上,我认为是。 IOS:link
      • 不,这些平台不支持 Cast SDK。
      • 那么我想知道为什么 Chrome 移动更新发行说明会说,如果 Cast SDK 不支持它,“允许添加了 Cast 支持的移动网站与您的支持 Cast 的设备一起工作”?这没有任何意义。除了像这样的一些问题之外,cast javascript 似乎确实有效。
      猜你喜欢
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 2022-01-13
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 2018-01-03
      相关资源
      最近更新 更多