changeCam method
Implementation
Future<void> changeCam(String deviceId, [CustomTrack? customTrack]) async {
if (_selectedVideoInput?.deviceId == deviceId) {
return;
}
Span? changeCamSpan;
try {
if (videoSDKTelemetery != null) {
changeCamSpan =
videoSDKTelemetery!.trace(spanName: 'Changing Webcam', attributes: [
Attribute.fromString(
'customTrack',
customTrack != null
? customTrack.toString()
: 'Not using customTrack'),
Attribute.fromString('deviceId', deviceId),
]);
}
} catch (error) {}
try {
//
_cameraInProgress = true;
//
MediaDeviceInfo device =
VideoSDK.mediaDevices[MediaDeviceType.videoInput]!.firstWhere(
(device) => device.deviceId == deviceId,
);
//
_selectedVideoInput = device;
//
await _disableCamImpl(parentSpan: changeCamSpan);
//
_enableCamImpl(customTrack: customTrack, parentSpan: changeCamSpan);
//
_cameraInProgress = false;
if (changeCamSpan != null) {
videoSDKTelemetery!.completeSpan(
span: changeCamSpan,
status: StatusCode.ok,
message: 'Change Webcam Successful');
}
} catch (err) {
//
VideoSDKLog.createLog(
message: "Error in changeCam() \n ${err.toString()}",
logLevel: "ERROR");
//
if (changeCamSpan != null) {
videoSDKTelemetery!.completeSpan(
span: changeCamSpan,
status: StatusCode.error,
message: 'Change Webcam Failed \n ${err.toString()}');
}
//
log("handle camera error $err");
}
}