You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-12-02 17:02:31 +03:00
Make localScreenSharingStream into a getter
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
This commit is contained in:
@@ -278,8 +278,6 @@ export class MatrixCall extends EventEmitter {
|
|||||||
private sentEndOfCandidates: boolean;
|
private sentEndOfCandidates: boolean;
|
||||||
private peerConn: RTCPeerConnection;
|
private peerConn: RTCPeerConnection;
|
||||||
private feeds: Array<CallFeed>;
|
private feeds: Array<CallFeed>;
|
||||||
private localScreenSharingStream: MediaStream;
|
|
||||||
// TODO: Rename to usermedia rather than AV for consistency
|
|
||||||
private localUsermediaStream: MediaStream;
|
private localUsermediaStream: MediaStream;
|
||||||
private usermediaSenders: Array<RTCRtpSender>;
|
private usermediaSenders: Array<RTCRtpSender>;
|
||||||
private screensharingSenders: Array<RTCRtpSender>;
|
private screensharingSenders: Array<RTCRtpSender>;
|
||||||
@@ -402,6 +400,14 @@ export class MatrixCall extends EventEmitter {
|
|||||||
return this.getLocalFeeds().find((feed) => feed.purpose === SDPStreamMetadataPurpose.Usermedia);
|
return this.getLocalFeeds().find((feed) => feed.purpose === SDPStreamMetadataPurpose.Usermedia);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public get localScreenSharingFeed(): CallFeed {
|
||||||
|
return this.getLocalFeeds().find((feed) => feed.purpose === SDPStreamMetadataPurpose.Screenshare);
|
||||||
|
}
|
||||||
|
|
||||||
|
private get localScreenSharingStream(): MediaStream {
|
||||||
|
return this.localScreenSharingFeed?.stream;
|
||||||
|
}
|
||||||
|
|
||||||
private getFeedByStreamId(streamId: string): CallFeed {
|
private getFeedByStreamId(streamId: string): CallFeed {
|
||||||
return this.getFeeds().find((feed) => feed.stream.id === streamId);
|
return this.getFeeds().find((feed) => feed.stream.id === streamId);
|
||||||
}
|
}
|
||||||
@@ -818,9 +824,9 @@ export class MatrixCall extends EventEmitter {
|
|||||||
logger.debug(`Set screensharing enabled? ${enabled}`);
|
logger.debug(`Set screensharing enabled? ${enabled}`);
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
try {
|
try {
|
||||||
this.localScreenSharingStream = await getScreensharingStream(selectDesktopCapturerSource);
|
const stream = await getScreensharingStream(selectDesktopCapturerSource);
|
||||||
if (!this.localScreenSharingStream) return false;
|
if (!stream) return false;
|
||||||
this.pushLocalFeed(this.localScreenSharingStream, SDPStreamMetadataPurpose.Screenshare);
|
this.pushLocalFeed(stream, SDPStreamMetadataPurpose.Screenshare);
|
||||||
return true;
|
return true;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.emit(CallEvent.Error,
|
this.emit(CallEvent.Error,
|
||||||
@@ -836,7 +842,6 @@ export class MatrixCall extends EventEmitter {
|
|||||||
for (const track of this.localScreenSharingStream.getTracks()) {
|
for (const track of this.localScreenSharingStream.getTracks()) {
|
||||||
track.stop();
|
track.stop();
|
||||||
}
|
}
|
||||||
this.localScreenSharingStream = null;
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -855,10 +860,10 @@ export class MatrixCall extends EventEmitter {
|
|||||||
logger.debug(`Set screensharing enabled? ${enabled} using replaceTrack()`);
|
logger.debug(`Set screensharing enabled? ${enabled} using replaceTrack()`);
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
try {
|
try {
|
||||||
this.localScreenSharingStream = await getScreensharingStream(selectDesktopCapturerSource);
|
const stream = await getScreensharingStream(selectDesktopCapturerSource);
|
||||||
if (!this.localScreenSharingStream) return false;
|
if (!stream) return false;
|
||||||
|
|
||||||
const track = this.localScreenSharingStream.getTracks().find((track) => {
|
const track = stream.getTracks().find((track) => {
|
||||||
return track.kind === "video";
|
return track.kind === "video";
|
||||||
});
|
});
|
||||||
const sender = this.usermediaSenders.find((sender) => {
|
const sender = this.usermediaSenders.find((sender) => {
|
||||||
@@ -866,7 +871,7 @@ export class MatrixCall extends EventEmitter {
|
|||||||
});
|
});
|
||||||
sender.replaceTrack(track);
|
sender.replaceTrack(track);
|
||||||
|
|
||||||
this.pushLocalFeed(this.localScreenSharingStream, SDPStreamMetadataPurpose.Screenshare, false);
|
this.pushLocalFeed(stream, SDPStreamMetadataPurpose.Screenshare, false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -888,7 +893,6 @@ export class MatrixCall extends EventEmitter {
|
|||||||
for (const track of this.localScreenSharingStream.getTracks()) {
|
for (const track of this.localScreenSharingStream.getTracks()) {
|
||||||
track.stop();
|
track.stop();
|
||||||
}
|
}
|
||||||
this.localScreenSharingStream = null;
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user