From cd7e570508aa5b45674b46309fc66be6c8a561a4 Mon Sep 17 00:00:00 2001 From: Sheng Date: Sat, 22 Apr 2023 16:53:42 -0700 Subject: [PATCH] chromecast: fix stop casting issue (#753) --- plugins/chromecast/src/main.ts | 23 +++++++++++-------- .../fs/examples/chromecast-view-camera.ts | 2 +- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/plugins/chromecast/src/main.ts b/plugins/chromecast/src/main.ts index 60676b8cb..ff5c5b2f6 100644 --- a/plugins/chromecast/src/main.ts +++ b/plugins/chromecast/src/main.ts @@ -88,7 +88,10 @@ class CastDevice extends ScryptedDeviceBase implements MediaPlayer, Refresh, Eng } client.removeAllListeners(); - client.close(); + try { + client.close(); + } catch (e) { + } } client.client.on('close', cleanup); client.on('error', err => { @@ -149,6 +152,14 @@ class CastDevice extends ScryptedDeviceBase implements MediaPlayer, Refresh, Eng } async load(media: string | MediaObject, options: MediaPlayerOptions) { + if (this.mediaPlayerPromise) { + try { + (await this.mediaPlayerPromise).close(); + } catch (e) { + } + this.mediaPlayerPromise = undefined; + this.mediaPlayerStatus = undefined; + } let url: string; let urlMimeType: string; @@ -341,15 +352,7 @@ class CastDevice extends ScryptedDeviceBase implements MediaPlayer, Refresh, Eng }); }) - player.getStatus((err, status) => { - if (err) { - reject(err); - return; - } - this.mediaPlayerStatus = status; - this.updateState(); - resolve(player); - }) + resolve(player); }); }); }); diff --git a/plugins/core/fs/examples/chromecast-view-camera.ts b/plugins/core/fs/examples/chromecast-view-camera.ts index 436049edb..e7373bb54 100644 --- a/plugins/core/fs/examples/chromecast-view-camera.ts +++ b/plugins/core/fs/examples/chromecast-view-camera.ts @@ -29,7 +29,7 @@ class ChromecastViewCameraExample implements StartStop { } async stop() { device.running = false; - return chromecast.stop(); + await chromecast.stop(); } }