webRTCinit method
Future<void>
webRTCinit(
{ - bool restoresystem = false,
})
Implementation
Future<void> webRTCinit({bool restoresystem = false}) async {
if (restoresystem) {
// Önce eski bağlantıyı temizle
await peerConnection?.close();
peerConnection = null;
await localStream?.dispose();
localStream = null;
}
await localRenderer.value.initialize();
await remoteRenderer.value.initialize();
localStream = await webrtc.navigator.mediaDevices.getUserMedia({
"audio": true,
"video": true,
});
// Akışı bir renderer ile yerel videoda göster
localRenderer.value.srcObject = localStream;
peerConnection = await webrtc.createPeerConnection({
"iceServers": [
{"urls": "stun:stun.l.google.com:19302"}
]
});
localStream!.getTracks().forEach((track) {
peerConnection!.addTrack(track, localStream!);
});
peerConnection!.onIceCandidate = (candidate) {
sendCandidate(candidate.toMap());
};
peerConnection!.onTrack = (event) {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (event.track.kind == 'audio') {
log('Gelen ses verisi: ${event.streams[0]}');
}
if (event.track.kind == 'video') {
remoteStream = event.streams[0];
remoteRenderer.value.srcObject = remoteStream;
}
});
log('//**//');
};
peerConnection!.onConnectionState = (state) {
log("Connection state: $state");
connectionState.value = state; // Bağlantı durumunu güncelliyoruz
};
}