mirror of https://github.com/OpenVidu/openvidu.git
openvidu-browser: remove code smell in OpenVidu.ts
parent
b4b808e3f1
commit
423e0d302f
|
@ -512,15 +512,14 @@ export class OpenVidu {
|
||||||
* });
|
* });
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
getUserMedia(options: PublisherProperties): Promise<MediaStream> {
|
async getUserMedia(options: PublisherProperties): Promise<MediaStream> {
|
||||||
return new Promise<MediaStream>(async (resolve, reject) => {
|
|
||||||
const askForAudioStreamOnly = async (previousMediaStream: MediaStream, constraints: MediaStreamConstraints) => {
|
const askForAudioStreamOnly = async (previousMediaStream: MediaStream, constraints: MediaStreamConstraints) => {
|
||||||
const definedAudioConstraint = constraints.audio === undefined ? true : constraints.audio;
|
const definedAudioConstraint = constraints.audio === undefined ? true : constraints.audio;
|
||||||
const constraintsAux: MediaStreamConstraints = { audio: definedAudioConstraint, video: false };
|
const constraintsAux: MediaStreamConstraints = { audio: definedAudioConstraint, video: false };
|
||||||
try {
|
try {
|
||||||
const audioOnlyStream = await navigator.mediaDevices.getUserMedia(constraintsAux);
|
const audioOnlyStream = await navigator.mediaDevices.getUserMedia(constraintsAux);
|
||||||
previousMediaStream.addTrack(audioOnlyStream.getAudioTracks()[0]);
|
previousMediaStream.addTrack(audioOnlyStream.getAudioTracks()[0]);
|
||||||
return resolve(previousMediaStream);
|
return previousMediaStream;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
previousMediaStream.getAudioTracks().forEach((track) => {
|
previousMediaStream.getAudioTracks().forEach((track) => {
|
||||||
track.stop();
|
track.stop();
|
||||||
|
@ -528,7 +527,7 @@ export class OpenVidu {
|
||||||
previousMediaStream.getVideoTracks().forEach((track) => {
|
previousMediaStream.getVideoTracks().forEach((track) => {
|
||||||
track.stop();
|
track.stop();
|
||||||
});
|
});
|
||||||
return reject(this.generateAudioDeviceError(error, constraintsAux));
|
throw this.generateAudioDeviceError(error, constraintsAux);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -540,7 +539,7 @@ export class OpenVidu {
|
||||||
(!!myConstraints.videoTrack && myConstraints.constraints?.audio === false)
|
(!!myConstraints.videoTrack && myConstraints.constraints?.audio === false)
|
||||||
) {
|
) {
|
||||||
// No need to call getUserMedia at all. Both tracks provided, or only AUDIO track provided or only VIDEO track provided
|
// No need to call getUserMedia at all. Both tracks provided, or only AUDIO track provided or only VIDEO track provided
|
||||||
return resolve(this.addAlreadyProvidedTracks(myConstraints, new MediaStream()));
|
return this.addAlreadyProvidedTracks(myConstraints, new MediaStream());
|
||||||
} else {
|
} else {
|
||||||
// getUserMedia must be called. AUDIO or VIDEO are requesting a new track
|
// getUserMedia must be called. AUDIO or VIDEO are requesting a new track
|
||||||
|
|
||||||
|
@ -569,15 +568,14 @@ export class OpenVidu {
|
||||||
const mediaStream = await navigator.mediaDevices['getDisplayMedia']({ video: true });
|
const mediaStream = await navigator.mediaDevices['getDisplayMedia']({ video: true });
|
||||||
this.addAlreadyProvidedTracks(myConstraints, mediaStream);
|
this.addAlreadyProvidedTracks(myConstraints, mediaStream);
|
||||||
if (mustAskForAudioTrackLater) {
|
if (mustAskForAudioTrackLater) {
|
||||||
await askForAudioStreamOnly(mediaStream, <MediaStreamConstraints>myConstraints.constraints);
|
return await askForAudioStreamOnly(mediaStream, <MediaStreamConstraints>myConstraints.constraints);
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
return resolve(mediaStream);
|
return mediaStream;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
let errorName: OpenViduErrorName = OpenViduErrorName.SCREEN_CAPTURE_DENIED;
|
let errorName: OpenViduErrorName = OpenViduErrorName.SCREEN_CAPTURE_DENIED;
|
||||||
const errorMessage = error.toString();
|
const errorMessage = error.toString();
|
||||||
return reject(new OpenViduError(errorName, errorMessage));
|
throw new OpenViduError(errorName, errorMessage);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// getDisplayMedia NOT supported. Can perform getUserMedia below with already calculated constraints
|
// getDisplayMedia NOT supported. Can perform getUserMedia below with already calculated constraints
|
||||||
|
@ -594,9 +592,9 @@ export class OpenVidu {
|
||||||
const mediaStream = await navigator.mediaDevices.getUserMedia(constraintsAux);
|
const mediaStream = await navigator.mediaDevices.getUserMedia(constraintsAux);
|
||||||
this.addAlreadyProvidedTracks(myConstraints, mediaStream);
|
this.addAlreadyProvidedTracks(myConstraints, mediaStream);
|
||||||
if (mustAskForAudioTrackLater) {
|
if (mustAskForAudioTrackLater) {
|
||||||
await askForAudioStreamOnly(mediaStream, <MediaStreamConstraints>myConstraints.constraints);
|
return await askForAudioStreamOnly(mediaStream, <MediaStreamConstraints>myConstraints.constraints);
|
||||||
} else {
|
} else {
|
||||||
return resolve(mediaStream);
|
return mediaStream;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
let errorName: OpenViduErrorName;
|
let errorName: OpenViduErrorName;
|
||||||
|
@ -606,13 +604,12 @@ export class OpenVidu {
|
||||||
} else {
|
} else {
|
||||||
errorName = OpenViduErrorName.SCREEN_CAPTURE_DENIED;
|
errorName = OpenViduErrorName.SCREEN_CAPTURE_DENIED;
|
||||||
}
|
}
|
||||||
return reject(new OpenViduError(errorName, errorMessage));
|
throw new OpenViduError(errorName, errorMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
reject(error);
|
throw error;
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* tslint:disable:no-empty */
|
/* tslint:disable:no-empty */
|
||||||
|
@ -990,7 +987,7 @@ export class OpenVidu {
|
||||||
/**
|
/**
|
||||||
* @hidden
|
* @hidden
|
||||||
*/
|
*/
|
||||||
addAlreadyProvidedTracks(myConstraints: CustomMediaStreamConstraints, mediaStream: MediaStream, stream?: Stream) {
|
addAlreadyProvidedTracks(myConstraints: CustomMediaStreamConstraints, mediaStream: MediaStream, stream?: Stream): MediaStream {
|
||||||
if (!!myConstraints.videoTrack) {
|
if (!!myConstraints.videoTrack) {
|
||||||
mediaStream.addTrack(myConstraints.videoTrack);
|
mediaStream.addTrack(myConstraints.videoTrack);
|
||||||
if (!!stream) {
|
if (!!stream) {
|
||||||
|
|
Loading…
Reference in New Issue