You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-26 17:03:12 +03:00
Add AudioVideo constraint type
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
This commit is contained in:
@@ -177,6 +177,7 @@ export enum CallErrorCode {
|
|||||||
enum ConstraintsType {
|
enum ConstraintsType {
|
||||||
Audio = "audio",
|
Audio = "audio",
|
||||||
Video = "video",
|
Video = "video",
|
||||||
|
AudioVideo = "audiovideo",
|
||||||
Screenshare = "screenshare",
|
Screenshare = "screenshare",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,7 +356,7 @@ export class MatrixCall extends EventEmitter {
|
|||||||
this.checkForErrorListener();
|
this.checkForErrorListener();
|
||||||
this.localVideoElement = localVideoElement;
|
this.localVideoElement = localVideoElement;
|
||||||
this.remoteVideoElement = remoteVideoElement;
|
this.remoteVideoElement = remoteVideoElement;
|
||||||
const constraints = await getUserMediaContraints(ConstraintsType.Video);
|
const constraints = await getUserMediaContraints(ConstraintsType.AudioVideo);
|
||||||
this.placeCallWithConstraints(constraints);
|
this.placeCallWithConstraints(constraints);
|
||||||
this.type = CallType.Video;
|
this.type = CallType.Video;
|
||||||
}
|
}
|
||||||
@@ -599,7 +600,7 @@ export class MatrixCall extends EventEmitter {
|
|||||||
if (!this.localAVStream && !this.waitForLocalAVStream) {
|
if (!this.localAVStream && !this.waitForLocalAVStream) {
|
||||||
const constraints = await getUserMediaContraints(
|
const constraints = await getUserMediaContraints(
|
||||||
this.type == CallType.Video ?
|
this.type == CallType.Video ?
|
||||||
ConstraintsType.Video:
|
ConstraintsType.AudioVideo:
|
||||||
ConstraintsType.Audio,
|
ConstraintsType.Audio,
|
||||||
);
|
);
|
||||||
logger.log("Getting user media with constraints", constraints);
|
logger.log("Getting user media with constraints", constraints);
|
||||||
@@ -1714,10 +1715,26 @@ async function getUserMediaContraints(
|
|||||||
return {
|
return {
|
||||||
audio: {
|
audio: {
|
||||||
deviceId: audioInput ? {ideal: audioInput} : undefined,
|
deviceId: audioInput ? {ideal: audioInput} : undefined,
|
||||||
}, video: false,
|
},
|
||||||
|
video: false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
case ConstraintsType.Video: {
|
case ConstraintsType.Video: {
|
||||||
|
return {
|
||||||
|
audio: false,
|
||||||
|
video: {
|
||||||
|
deviceId: videoInput ? {ideal: videoInput} : undefined,
|
||||||
|
/* We want 640x360. Chrome will give it only if we ask exactly,
|
||||||
|
FF refuses entirely if we ask exactly, so have to ask for ideal
|
||||||
|
instead
|
||||||
|
XXX: Is this still true?
|
||||||
|
*/
|
||||||
|
width: isWebkit ? { exact: 640 } : { ideal: 640 },
|
||||||
|
height: isWebkit ? { exact: 360 } : { ideal: 360 },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case ConstraintsType.AudioVideo: {
|
||||||
return {
|
return {
|
||||||
audio: {
|
audio: {
|
||||||
deviceId: audioInput ? {ideal: audioInput} : undefined,
|
deviceId: audioInput ? {ideal: audioInput} : undefined,
|
||||||
|
|||||||
Reference in New Issue
Block a user