Я использую Webrtc во Flutter, чтобы поделиться своим экраном. у меня есть этот код
Signaling {
RTCVideoRenderer localRenderer = RTCVideoRenderer();
RTCVideoRenderer remoteRenderer = RTCVideoRenderer();
MediaStream? localStream;
MediaStream? remoteStream;
Future<void> makeScreenSharing() async {
final mediaConstraints = <String, dynamic>{'audio': true, 'video': true};
try {
var stream =
await navigator.mediaDevices.getDisplayMedia(mediaConstraints);
localStream = stream;
localRenderer.srcObject = localStream;
} catch (e) {
print(e.toString());
}
}
этот код приведет к совместному использованию моего экрана на моей странице, но другое соединение все еще получает мою камеру.





Я исправляю проблему вам придется заменить дорожки
Future<void> replaceMediaStream(MediaStream newStream) {
return peerConnection?.senders.then((senders) {
senders.forEach((sender) async {
if (sender.track?.kind == 'video') {
if (newStream.getVideoTracks().length > 0) {
await sender.replaceTrack(newStream.getVideoTracks()[0]);
}
} else if (sender.track?.kind == 'audio') {
if (newStream.getAudioTracks().length > 0) {
await sender.replaceTrack(newStream.getAudioTracks()[0]);
}
}
});
return Future.value();
}) ??
Future.error(
Exception('An error occurred during switching the stream'));
}
вызовите эту функцию после того, как вы установили локальные потоки