disableScreenShare method
Future<void>
disableScreenShare(
)
Implementation
Future<void> disableScreenShare() async {
Span? disableShareSpan;
try {
if (videoSDKTelemetery != null) {
disableShareSpan = videoSDKTelemetery!.trace(
spanName: 'disableShare() Calling',
);
}
} catch (error) {}
//
if (_screenshareProducer != null) {
//
_screenShareInProgress = true;
Span? audioProducerTrack;
Span? producerTrack;
if (_screenShareAudioProducer != null) {
try {
if (disableShareSpan != null) {
audioProducerTrack = videoSDKTelemetery!.trace(
spanName: 'Closing Share Audio Producer',
span: disableShareSpan,
);
}
} catch (error) {}
//
String screenShareAudioId = _screenShareAudioProducer!.id;
//
_removeProducer(
_screenShareAudioProducer!, _ProducerType.screenShareAudioProducer);
//
_screenShareAudioProducer = null;
try {
//
await _webSocket!.socket.request('closeProducer', {
'producerId': screenShareAudioId,
});
if (audioProducerTrack != null) {
videoSDKTelemetery!.completeSpan(
span: audioProducerTrack,
message: 'Requested Server to Close Audio Producer',
status: StatusCode.ok);
audioProducerTrack = null;
}
} catch (error) {
//
VideoSDKLog.createLog(
message: "Error in audio disableShare() \n ${error.toString()}",
logLevel: "ERROR");
if (audioProducerTrack != null) {
videoSDKTelemetery!.completeSpan(
span: audioProducerTrack,
message: 'Close Audio Producer Request to Server Failed',
status: StatusCode.error);
audioProducerTrack = null;
}
//
log("disableShare error => $error");
}
}
try {
if (disableShareSpan != null) {
producerTrack = videoSDKTelemetery!.trace(
spanName: 'Closing Share Producer',
span: disableShareSpan,
);
}
} catch (error) {}
//
String screenShareId = _screenshareProducer!.id;
//
_removeProducer(_screenshareProducer!, _ProducerType.screenshareProducer);
//
_screenshareProducer = null;
try {
//
await _webSocket!.socket.request('closeProducer', {
'producerId': screenShareId,
});
if (producerTrack != null) {
videoSDKTelemetery!.completeSpan(
span: producerTrack,
message: 'Requested Server to Close Producer',
status: StatusCode.ok);
producerTrack = null;
}
if (disableShareSpan != null) {
videoSDKTelemetery!.completeSpan(
span: disableShareSpan,
message: 'Disable ScreenShare Successful',
status: StatusCode.ok);
}
} catch (error) {
//
VideoSDKLog.createLog(
message: "Error in disableShare() \n ${error.toString()}",
logLevel: "ERROR");
if (producerTrack != null) {
videoSDKTelemetery!.completeSpan(
span: producerTrack,
message: 'Close Producer Request Failed',
status: StatusCode.error);
producerTrack = null;
}
if (disableShareSpan != null) {
videoSDKTelemetery!.completeSpan(
span: disableShareSpan,
message: 'ScreenShare disabled Failed \n ${error.toString()}',
status: StatusCode.error);
}
//
log("disableShare error => $error");
} finally {
_closeForegroundService();
//
_screenShareInProgress = false;
}
} else {
if (disableShareSpan != null) {
videoSDKTelemetery!.completeSpan(
span: disableShareSpan,
message: 'Share Producer Not found',
status: StatusCode.error);
}
//
log("Screenshare is not enabled !!");
}
}