1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Use cast receiver application from user configuration

This commit is contained in:
Niels van Velzen 2023-10-05 18:08:30 +02:00
parent ae48e2a007
commit 7c9c38d682

View file

@ -58,11 +58,6 @@ const PLAYER_STATE = {
'ERROR': 'ERROR'
};
// production version registered with google
// replace this value if you want to test changes on another instance
const applicationStable = 'F007D354';
const applicationUnstable = '6F511C87';
const messageNamespace = 'urn:x-cast:com.connectsdk';
class CastPlayer {
@ -98,6 +93,7 @@ class CastPlayer {
initializeCastPlayer() {
const chrome = window.chrome;
if (!chrome) {
console.warn('Not initializing chromecast: chrome object is missing');
return;
}
@ -106,9 +102,15 @@ class CastPlayer {
return;
}
let applicationID = userSettings.chromecastVersion();
if (applicationID === 'stable') applicationID = applicationStable;
if (applicationID === 'unstable') applicationID = applicationUnstable;
const apiClient = ServerConnections.currentApiClient();
const userId = apiClient.getCurrentUserId();
apiClient.getUser(userId).then(user => {
const applicationID = user.Configuration.CastReceiverId;
if (!applicationID) {
console.warn(`Not initializing chromecast: CastReceiverId is ${applicationID}`);
return;
}
// request session
const sessionRequest = new chrome.cast.SessionRequest(applicationID);
@ -118,6 +120,7 @@ class CastPlayer {
console.debug(`chromecast.initialize (applicationId=${applicationID})`);
chrome.cast.initialize(apiConfig, this.onInitSuccess.bind(this), this.errorHandler);
});
}
/**
@ -584,7 +587,15 @@ class ChromecastPlayer {
this.isLocalPlayer = false;
this.lastPlayerData = {};
new CastSenderApi().load().then(initializeChromecast.bind(this));
new CastSenderApi().load().then(() => {
Events.on(ServerConnections, 'localusersignedin', () => {
initializeChromecast.call(this);
});
if (ServerConnections.currentUserId) {
initializeChromecast.call(this);
}
});
}
tryPair() {