Chromecast会话状态在Chrome移动iOS上返回未定义

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

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

javascript ios google-chrome mobile google-cast
3个回答
0
投票

0
投票
我获取会话的设置。状态:

// 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上创建会话时更新falseStatus:

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;
    ...
}

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.