diff --git a/src/adapters/WHEPAdapter.ts b/src/adapters/WHEPAdapter.ts index 2075a34..8ce1f5d 100644 --- a/src/adapters/WHEPAdapter.ts +++ b/src/adapters/WHEPAdapter.ts @@ -62,6 +62,7 @@ export class WHEPAdapter implements Adapter { await this.initSdpExchange(); } catch (error) { console.error((error as Error).toString()); + this.onErrorHandler('connecterror'); } } diff --git a/src/index.ts b/src/index.ts index 9470a27..443278d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,7 +12,8 @@ enum Message { NO_MEDIA = 'no-media', MEDIA_RECOVERED = 'media-recovered', PEER_CONNECTION_FAILED = 'peer-connection-failed', - INITIAL_CONNECTION_FAILED = 'initial-connection-failed' + INITIAL_CONNECTION_FAILED = 'initial-connection-failed', + CONNECT_ERROR = 'connect-error' } export interface MediaConstraints { @@ -146,6 +147,11 @@ export class WebRTCPlayer extends EventEmitter { this.videoElement.srcObject = null; this.emit(Message.INITIAL_CONNECTION_FAILED); break; + case 'connecterror': + this.peer && this.peer.close(); + this.adapter.resetPeer(this.peer); + this.emit(Message.CONNECT_ERROR); + break; } }