diff --git a/openvidu-browser/src/OpenVidu/OpenVidu.ts b/openvidu-browser/src/OpenVidu/OpenVidu.ts index 00ad4b52..abc7d97f 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 e420f6ac..4299df53 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 6d81c74b..31a138bc 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]]