1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-05-16 15:30:20 -07:00
deskreen/app/features/PeerConnection/getDesktopSourceStreamBySourceID.ts
Pavlo Buidenkov b925803d9f better client UI code
huge work done on sharing desktop session
2020-11-22 17:07:01 +02:00

46 lines
1.2 KiB
TypeScript

export default async (
sourceID: string,
width: number | null | undefined = undefined,
height: number | null | undefined = undefined,
minSizeDivisor = 1,
maxSizeDivisor = 1,
minFrameRate = 15,
maxFrameRate = 60
) => {
if (width && height) {
return navigator.mediaDevices.getUserMedia({
audio: false,
video: {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: fine here, mandatory does not exist, it's a problem with types
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: sourceID,
minWidth: width / minSizeDivisor,
maxWidth: width / maxSizeDivisor,
minHeight: height / minSizeDivisor,
maxHeight: height / maxSizeDivisor,
minFrameRate,
maxFrameRate,
},
},
});
}
return navigator.mediaDevices.getUserMedia({
audio: false,
video: {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: fine here, mandatory does not exist, it's a problem with types
mandatory: {
chromeMediaSource: 'desktop',
chromeMediaSourceId: sourceID,
minFrameRate,
maxFrameRate,
},
},
});
};