mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-12 02:29:59 +00:00
Store/disconnect media extension message listener
This commit is contained in:
@@ -40,38 +40,7 @@ export default class Media {
|
||||
#sendMediaMessageCallbacks = new Map<string, Callbacks>();
|
||||
#lastCurrentTime?: number;
|
||||
|
||||
public activeTrackIds: (number[] | null) = null;
|
||||
public currentItemId: (number | null) = null;
|
||||
public customData: any = null;
|
||||
public currentTime: number = 0;
|
||||
public idleReason: (string | null) = null;
|
||||
public items: (QueueItem[] | null) = null;
|
||||
public loadingItemId: (number | null) = null;
|
||||
public media: (MediaInfo | null) = null;
|
||||
public playbackRate: number = 1;
|
||||
public playerState: string = PlayerState.IDLE;
|
||||
public preloadedItemId: (number | null) = null;
|
||||
public repeatMode: string = RepeatMode.OFF;
|
||||
public supportedMediaCommands: string[] = [];
|
||||
public volume: Volume = new Volume();
|
||||
|
||||
|
||||
constructor (
|
||||
public sessionId: string
|
||||
, public mediaSessionId: number
|
||||
, _internalSessionId: string) {
|
||||
|
||||
sendMessageResponse({
|
||||
subject: "bridge:/media/initialize"
|
||||
, data: {
|
||||
sessionId
|
||||
, mediaSessionId
|
||||
, _internalSessionId
|
||||
}
|
||||
, _id: this.#id
|
||||
});
|
||||
|
||||
onMessage(message => {
|
||||
#listener = onMessage(message => {
|
||||
if ((message as any)._id !== this.#id) {
|
||||
return;
|
||||
}
|
||||
@@ -125,6 +94,37 @@ export default class Media {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
public activeTrackIds: (number[] | null) = null;
|
||||
public currentItemId: (number | null) = null;
|
||||
public customData: any = null;
|
||||
public currentTime: number = 0;
|
||||
public idleReason: (string | null) = null;
|
||||
public items: (QueueItem[] | null) = null;
|
||||
public loadingItemId: (number | null) = null;
|
||||
public media: (MediaInfo | null) = null;
|
||||
public playbackRate: number = 1;
|
||||
public playerState: string = PlayerState.IDLE;
|
||||
public preloadedItemId: (number | null) = null;
|
||||
public repeatMode: string = RepeatMode.OFF;
|
||||
public supportedMediaCommands: string[] = [];
|
||||
public volume: Volume = new Volume();
|
||||
|
||||
|
||||
constructor (
|
||||
public sessionId: string
|
||||
, public mediaSessionId: number
|
||||
, _internalSessionId: string) {
|
||||
|
||||
sendMessageResponse({
|
||||
subject: "bridge:/media/initialize"
|
||||
, data: {
|
||||
sessionId
|
||||
, mediaSessionId
|
||||
, _internalSessionId
|
||||
}
|
||||
, _id: this.#id
|
||||
});
|
||||
}
|
||||
|
||||
public addUpdateListener (listener: UpdateListener): void {
|
||||
@@ -279,6 +279,8 @@ export default class Media {
|
||||
{ type: "STOP" }
|
||||
, () => {
|
||||
this.#isActive = false;
|
||||
this.#listener.disconnect();
|
||||
|
||||
if (successCallback) {
|
||||
successCallback();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user