fixed cast play
This commit is contained in:
@@ -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);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user