fixed cast play

This commit is contained in:
2026-01-14 17:55:18 +01:00
parent efdba35b77
commit ed2e660d34
7 changed files with 438 additions and 170 deletions

View File

@@ -23,15 +23,21 @@ function stopSessions(client, sessions, cb) {
const session = remaining.shift();
if (!session) return cb();
client.stop(session, (err) => {
if (err) {
log(`Stop session failed (${session.appId || 'unknown app'}): ${err.message || String(err)}`);
} else {
log(`Stopped session (${session.appId || 'unknown app'})`);
}
// Continue regardless; best-effort.
try {
client.stop(session, (err) => {
if (err) {
log(`Stop session failed (${session.appId || 'unknown app'}): ${err.message || String(err)}`);
} else {
log(`Stopped session (${session.appId || 'unknown app'})`);
}
// Continue regardless; best-effort.
stopNext();
});
} catch (err) {
// Some devices/library versions may throw synchronously; just log and continue.
log(`Stop session threw (${session.appId || 'unknown app'}): ${err.message || String(err)}`);
stopNext();
});
}
};
stopNext();
@@ -107,13 +113,11 @@ function play(ip, url) {
}
});
} else {
// If another app is running, stop it first to avoid NOT_ALLOWED.
// Backdrop or other non-media session present: skip stopping to avoid platform sender crash, just launch.
if (sessions.length > 0) {
log('Non-media session detected, stopping before launch...');
stopSessions(activeClient, sessions, () => launchPlayer(url, /*didStopFirst*/ true));
} else {
launchPlayer(url, /*didStopFirst*/ false);
log('Non-media session detected; skipping stop and launching DefaultMediaReceiver...');
}
launchPlayer(url, /*didStopFirst*/ false);
}
});
});