From 758a77e0dfe47949813da2db8faa552be1a91ab7 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 21 Jan 2019 10:49:51 +0100 Subject: [PATCH] Detect device in use --- openvidu-browser/src/OpenVidu/OpenVidu.ts | 2 +- openvidu-browser/src/OpenVidu/Publisher.ts | 15 +++++++++++++++ .../src/OpenViduInternal/Enums/OpenViduError.ts | 6 ++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/openvidu-browser/src/OpenVidu/OpenVidu.ts b/openvidu-browser/src/OpenVidu/OpenVidu.ts index 73678f1f..6e914983 100644 --- a/openvidu-browser/src/OpenVidu/OpenVidu.ts +++ b/openvidu-browser/src/OpenVidu/OpenVidu.ts @@ -237,7 +237,7 @@ export class OpenVidu { if (completionHandler !== undefined) { completionHandler(error); } - publisher.emitEvent('accessDenied', []); + publisher.emitEvent('accessDenied', [error]); }); this.publishers.push(publisher); diff --git a/openvidu-browser/src/OpenVidu/Publisher.ts b/openvidu-browser/src/OpenVidu/Publisher.ts index eef770c8..0ae2fd19 100644 --- a/openvidu-browser/src/OpenVidu/Publisher.ts +++ b/openvidu-browser/src/OpenVidu/Publisher.ts @@ -571,6 +571,21 @@ export class Publisher extends StreamManager { errorCallback(new OpenViduError(errorName, errorMessage)); }); break; + case 'aborterror': + errorName = OpenViduErrorName.DEVICE_ALREADY_IN_USE; + errorMessage = error.toString(); + errorCallback(new OpenViduError(errorName, errorMessage)); + break; + case 'notreadableerror': + errorName = OpenViduErrorName.DEVICE_ALREADY_IN_USE; + errorMessage = error.toString(); + errorCallback(new OpenViduError(errorName, errorMessage)); + break; + default: + errorName = OpenViduErrorName.GENERIC_ERROR; + errorMessage = error.toString(); + errorCallback(new OpenViduError(errorName, errorMessage)); + break; } }); } else { diff --git a/openvidu-browser/src/OpenViduInternal/Enums/OpenViduError.ts b/openvidu-browser/src/OpenViduInternal/Enums/OpenViduError.ts index 8f1a3cf3..df203c28 100644 --- a/openvidu-browser/src/OpenViduInternal/Enums/OpenViduError.ts +++ b/openvidu-browser/src/OpenViduInternal/Enums/OpenViduError.ts @@ -32,6 +32,12 @@ export enum OpenViduErrorName { */ DEVICE_ACCESS_DENIED = 'DEVICE_ACCESS_DENIED', + /** + * The required input device is used by other software or browser when the browser asked for them. + * Returned upon unsuccessful [[OpenVidu.initPublisher]] or [[OpenVidu.getUserMedia]] + */ + DEVICE_ALREADY_IN_USE = "DEVICE_ALREADY_IN_USE", + /** * The user hasn't granted permissions to capture some desktop screen when the browser asked for them. * Returned upon unsuccessful [[OpenVidu.initPublisher]] or [[OpenVidu.getUserMedia]]