enableWebcam method
void
enableWebcam()
Enable webcam
Implementation
void enableWebcam() async {
if (meBloc.state.webcamInProgress) {
return;
}
meBloc.add(MeSetWebcamInProgress(progress: true));
if (_mediasoupDevice!.canProduce(RTCRtpMediaType.RTCRtpMediaTypeVideo) ==
false) {
return;
}
try {
// NOTE: prefer using h264
RtpCodecCapability? codec = _mediasoupDevice!.rtpCapabilities.codecs
.firstWhere((RtpCodecCapability c) {
return c.mimeType.toLowerCase() == 'video/vp9' ||
c.mimeType.toLowerCase() == 'video/vp8';
},
// (RtpCodecCapability c) =>
// c.mimeType.toLowerCase() == 'video/h264',
orElse: () =>
throw 'desired vp9 codec+configuration is not supported');
/// Get video input device
final MediaStreamTrack track = _localStream!.getVideoTracks().first;
meBloc.add(MeSetWebcamInProgress(progress: true));
_sendTransport!.produce(
track: track,
codecOptions: ProducerCodecOptions(
videoGoogleStartBitrate: 1000,
),
encodings: kIsWeb
? [
RtpEncodingParameters(
scalabilityMode: 'S3T3_KEY', scaleResolutionDownBy: 1.0),
]
: [],
stream: _localStream!,
appData: {
'source': 'webcam',
},
source: 'webcam',
codec: codec,
);
} catch (error) {
// if (videoStream != null) {
// await videoStream.dispose();
// }
}
}