fix(cast): reset player state on cast disconnect
- Add onCastDisconnected callback to castStore - Reset isPlaying state when cast disconnects - Ensures play indicator stops in UI when DLNA disconnects cpvsc
This commit is contained in:
1 parent
7ee12ea1b2
commit
5a2eba97d9
2 files changed
+23
-1
No files matched your search
@@ -50,6 +50,9 @@ const POSITION_POLL_INTERVAL_MS = 1000;
|
||||
// Callback for when track ends (for auto-advance)
|
||||
let onCastTrackEnded: (() => Promise<void>) | null = null;
|
||||
|
||||
// Callback for when cast disconnects (to reset player state)
|
||||
let onCastDisconnected: (() => void) | null = null;
|
||||
|
||||
// Track end detection state
|
||||
let lastTransportState: string = '';
|
||||
let trackEndDetected = false;
|
||||
@@ -167,6 +170,18 @@ export async function disconnect(): Promise<void> {
|
||||
durationSecs: 0
|
||||
};
|
||||
notifyListeners();
|
||||
|
||||
// Notify player to reset its state
|
||||
if (onCastDisconnected) {
|
||||
onCastDisconnected();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set callback for when cast disconnects
|
||||
*/
|
||||
export function setOnCastDisconnected(callback: () => void): void {
|
||||
onCastDisconnected = callback;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,7 +16,8 @@ import {
|
||||
castStop,
|
||||
getCastPosition,
|
||||
subscribe as subscribeToCast,
|
||||
setOnCastTrackEnded
|
||||
setOnCastTrackEnded,
|
||||
setOnCastDisconnected
|
||||
} from '$lib/stores/castStore';
|
||||
|
||||
// ============ Types ============
|
||||
@@ -419,6 +420,12 @@ export async function startPolling(): Promise<void> {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Set callback for when cast disconnects - reset player state
|
||||
setOnCastDisconnected(() => {
|
||||
isPlaying = false;
|
||||
notifyListeners();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user