Chrome投射会话状态 returns 在 Chrome 移动设备 iOS 上未定义
Chromecast session status returns undefined on Chrome mobile iOS
Chrome投射会话状态 returns 在 Chrome 移动设备 ios 上未定义。会话存在并定义了其他属性,如 sessionID。在桌面上,会话状态 returns "connected"、"disconnected" 或 "stopped" 符合预期。这是 Chrome ios 的错误吗?还有另一种检测会话状态的方法吗?
Cast SDK 不支持 iOS 和 Android 上的 Chrome。
我找到了一个似乎足以满足我的需要的解决方法。
我获取 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;
...
}
Chrome投射会话状态 returns 在 Chrome 移动设备 ios 上未定义。会话存在并定义了其他属性,如 sessionID。在桌面上,会话状态 returns "connected"、"disconnected" 或 "stopped" 符合预期。这是 Chrome ios 的错误吗?还有另一种检测会话状态的方法吗?
Chrome。
我找到了一个似乎足以满足我的需要的解决方法。
我获取 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;
...
}