Closed Basim2Shaban closed 1 year ago
i am facing this issue when i am trying to make call between two users the caller user can get the streams very well but the answer user cannot get any streams !! this is my code ...
@override void initState() { super.initState(); _localRenderer.initialize(); _remoteRenderer.initialize(); SocketConnections.makeCall(caller_data); WidgetsBinding.instance.addPostFrameCallback((timeStamp)async{ SocketConnections.sio!.on(caller_data['caller_id'].toString()+caller_data['receiver_id'].toString(), (data){ final mediaStream = navigator.mediaDevices.getUserMedia({"video": true, "audio": false}); mediaStream.then((value) => { setState(() { _localRenderer.srcObject = value; debugPrint("Con id : ${peer.open}"); callConnection = peer.call(caller_data['receiver_id'].toString(),value); peer.on<MediaConnection>("call").listen((call) async { mediaConn = call ; debugPrint("into the call"); final mediaStream = await navigator.mediaDevices .getUserMedia({"video": true, "audio": true}); mediaConn.answer(mediaStream); mediaConn.on<MediaStream>("stream").listen((event) { debugPrint("start streaming"); _localRenderer.srcObject = mediaStream; print(event.getVideoTracks().length); _remoteRenderer.srcObject = event; setState(() { // CallProvider.answer = true; }); }); mediaConn.on("close").listen((event) { // callProvider.onCancelCall(); }); }); callConnection.on("close").listen((event) { // callProvider.onCancelCall(); }); }) }); }); var myID = await AppHelper.getUserId(); peer = Peer(id:myID,options: PeerOptions(host:'192.168.43.197' ,secure: false,port: 9000)); print("${peer.id!}======== this is peer"); peer.connect(caller_data['receiver_id'].toString()); }); }
and here is the answer widget
@override void initState() { super.initState(); _localRenderer.initialize(); _remoteRenderer.initialize(); peer = Peer(id:myID,options: PeerOptions(host:'192.168.43.197' ,secure: false,port: 9000)); WidgetsBinding.instance.addPostFrameCallback((timeStamp)async{ // if(!CallProvider.answer){ // return ; // } var myID = await AppHelper.getUserId(); // peer = Peer(id:myID,options: PeerOptions(host:'192.168.43.197' ,secure: false,port: 9000)); print("${peer.id!}======== this is peer"); peer.connect(callerData['caller_id'].toString()); final mediaStream = navigator.mediaDevices.getUserMedia({"video": true, "audio": false}); mediaStream.then((value) => { setState(() { _localRenderer.srcObject = value; peer.on<MediaConnection>("call").listen((call) async { mediaConn = call ; CallProvider.inCall = true; debugPrint("into the call"); final mediaStream = await navigator.mediaDevices .getUserMedia({"video": true, "audio": true}); mediaConn.answer(mediaStream); mediaConn.on<MediaStream>("stream").listen((event) { debugPrint("start streaming"); setState(() { _localRenderer.srcObject = mediaStream; print(event.getVideoTracks().length); _remoteRenderer.srcObject = event; // CallProvider.answer = true; }); }); mediaConn.on("close").listen((event) { // callProvider.onCancelCall(); }); }); }) }); }); }
i am facing this issue when i am trying to make call between two users the caller user can get the streams very well but the answer user cannot get any streams !! this is my code ...
and here is the answer widget