flutter-webrtc / flutter-webrtc

WebRTC plugin for Flutter Mobile/Desktop/Web
MIT License
4.11k stars 1.12k forks source link

Black Screen Only #1463

Open uugurbas opened 1 year ago

uugurbas commented 1 year ago

I have implemented the package in my Flutter project. I have exchanged the SDPs successfully but the remote stream renders only a black screen.

Flutter Version 3.10.6 flutter_webrtc package 0.9.45 I have no problem in flutter doctor

My Code:

 Future<String> createConnection(RTCVideoRenderer remoteRenderer) async {
    await getConfig();
    peerConnection = await createPeerConnection(configuration);

    //  localStream?.getTracks().forEach((track) {
    //   peerConnection?.addTrack(track, localStream!);
    // });

    // Code for collecting ICE candidates below

    peerConnection?.onIceCandidate = (RTCIceCandidate candidate) {
      //Ice gönderilmeye hazır
      //callerCandidatesCollection.add(candidate.toMap());

      if (candidate.candidate != null) {
        //peerConnection!.addCandidate(candidateList  );
        print(json.encode({
          'candidate': candidate.candidate.toString(),
          'sdpMid': candidate.sdpMid.toString(),
          'sdpMlineIndex': candidate.sdpMLineIndex,
        }));
      }
    };
    // Finish Code for collecting ICE candidate

    // Add code for creating a room
    // Kendi SDP Değerlerimi oluşturuyorum
    RTCSessionDescription offer = await peerConnection!.createOffer();
    await peerConnection!.setLocalDescription(offer);
    debugPrint('Created offer: $offer');
    registerPeerConnectionListeners(offer);
    // Created a Room

    // mediaStream = await navigator.mediaDevices.getUserMedia({
    //   'audio': false,
    //   'video': true,
    // });

    peerConnection?.onTrack = (RTCTrackEvent event) {
      debugPrint('Got remote track: ${event.streams[0].id}');

      event.streams[0].getTracks().forEach((track) {
        debugPrint('Add a track to the remoteStream $track');
        //mediaStream?.addTrack(track);
        remoteStream?.addTrack(track);
      });
    };

    // Listening for remote session description below

    //SDP Bilgilerini karşıya gönderip cevap bekliyorum

    // Listening for remote session description above

    // Listen for remote Ice candidates below

// Ice candidate alarak buraya ekle

    for (var element in candidateList) {
      peerConnection!.addCandidate(
        RTCIceCandidate(
          element['candidate'],
          element['sdpMid'],
          element['sdpMLineIndex'],
        ),
      );
    }

    // Listen for remote ICE candidates above
    /* FirebaseFirestore db = FirebaseFirestore.instance;
    DocumentReference roomRef = db.collection('rooms').doc();

    debugPrint('Create PeerConnection with configuration: $configuration');

    peerConnection = await createPeerConnection(configuration);

    registerPeerConnectionListeners();

    localStream?.getTracks().forEach((track) {
      peerConnection?.addTrack(track, localStream!);
    });

    // Code for collecting ICE candidates below
    var callerCandidatesCollection = roomRef.collection('callerCandidates');

    peerConnection?.onIceCandidate = (RTCIceCandidate candidate) {
      debugPrint('Got candidate: ${candidate.toMap()}');
      callerCandidatesCollection.add(candidate.toMap());
    };
    // Finish Code for collecting ICE candidate

    // Add code for creating a room
    RTCSessionDescription offer = await peerConnection!.createOffer();
    await peerConnection!.setLocalDescription(offer);
    debugPrint('Created offer: $offer');

    Map<String, dynamic> roomWithOffer = {'offer': offer.toMap()};

    await roomRef.set(roomWithOffer);
    var roomId = roomRef.id;
    debugPrint('New room created with SDK offer. Room ID: $roomId');
    currentRoomText = 'Current room is $roomId - You are the caller!';
    // Created a Room

    peerConnection?.onTrack = (RTCTrackEvent event) {
      debugPrint('Got remote track: ${event.streams[0]}');

      event.streams[0].getTracks().forEach((track) {
        debugPrint('Add a track to the remoteStream $track');
        remoteStream?.addTrack(track);
      });
    };

    // Listening for remote session description below
    roomRef.snapshots().listen((snapshot) async {
      debugPrint('Got updated room: ${snapshot.data()}');

      Map<String, dynamic> data = snapshot.data() as Map<String, dynamic>;
      if (true /*peerConnection?.getRemoteDescription() != null &&
          data['answer'] != null*/
          ) {
        var answer = RTCSessionDescription(
          data['answer']['sdp'],
          data['answer']['type'],
        );
        var response = await http.post(
            Uri.parse(
                "http://8d4593d13314b74b78b505d96f66c839.crdts.cc/connect_inference_engine"),
            body: {
              "data": {
                "opt": {
                  "sdp": data['answer']['sdp'],
                  "type": 'offer',
                  "jobId": 3263
                }
              }
            });
        debugPrint("sonuç: " + response.toString());

        debugPrint("Someone tried to connect");
        await peerConnection?.setRemoteDescription(answer);
      }
    });
    // Listening for remote session description above

    // Listen for remote Ice candidates below
    roomRef.collection('calleeCandidates').snapshots().listen((snapshot) {
      for (var change in snapshot.docChanges) {
        if (change.type == DocumentChangeType.added) {
          Map<String, dynamic> data = change.doc.data() as Map<String, dynamic>;
          debugPrint('Got new remote ICE candidate: ${jsonEncode(data)}');
          peerConnection!.addCandidate(
            RTCIceCandidate(
              data['candidate'],
              data['sdpMid'],
              data['sdpMLineIndex'],
            ),
          );
        }
      }
    });
    // Listen for remote ICE candidates above
*/
    return "roomId";
  }

Log output: I/ViewRootImpl@2245d1dMainActivity: ViewPostIme pointer 0 I/ViewRootImpl@2245d1dMainActivity: ViewPostIme pointer 1 I/flutter (19957): eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJudW1hbmJ1Z3Jhb3p0dXJrQG91dGxvb2suY29tIiwiaWF0IjoxNjk2NTgwMTM0LCJleHAiOjE2OTY2NjY1MzR9.ZbFGQABF79zaNq1FTYEuRgItB408kIuHyYagWFjBi5Y I/flutter (19957): 89bff5f400d0d305ba7d8b74a4b8d3581d2745a8620a16fd35251f98f2749430 I/flutter (19957): configuration is {servers: [{credential: null, urls: stun:3.67.24.50:3478, username: null}, {credential: W0rjew3Qgjx6uD9qJePEiQ8INFA=, urls: turn:3.67.24.50:3478?transport=tcp, username: 1696582337:1725}]} I/flutter (19957): cordatus ice server response is: Instance of 'Response' I/flutter (19957): cordatus ice server response.body is: {"servers":[{"credential":null,"urls":"stun:3.67.24.50:3478","username":null},{"credential":"W0rjew3Qgjx6uD9qJePEiQ8INFA=","urls":"turn:3.67.24.50:3478?transport=tcp","username":"1696582337:1725"}]} I/flutter (19957): cordatus ice server parsedJson is: {servers: [{credential: null, urls: stun:3.67.24.50:3478, username: null}, {credential: W0rjew3Qgjx6uD9qJePEiQ8INFA=, urls: turn:3.67.24.50:3478?transport=tcp, username: 1696582337:1725}]} D/FlutterWebRTCPlugin(19957): onIceGatheringChangeGATHERING I/flutter (19957): Created offer: Instance of 'RTCSessionDescription' I/flutter (19957): ICE connection state change: RTCIceGatheringState.RTCIceGatheringStateGathering D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate I/flutter (19957): {"candidate":"candidate:3022966986 1 udp 2122194687 10.15.239.229 55354 typ host generation 0 ufrag 5ysp network-id 4 network-cost 900","sdpMid":"0","sdpMlineIndex":0} I/flutter (19957): {"candidate":"candidate:4180380889 1 udp 2122063615 127.0.0.1 54024 typ host generation 0 ufrag 5ysp network-id 1","sdpMid":"0","sdpMlineIndex":0} I/flutter (19957): {"candidate":"candidate:2717222544 1 udp 2122136831 ::1 45819 typ host generation 0 ufrag 5ysp network-id 2","sdpMid":"0","sdpMlineIndex":0} I/flutter (19957): {"candidate":"candidate:3022966986 1 udp 2122194687 10.15.239.229 51469 typ host generation 0 ufrag 5ysp network-id 4 network-cost 900","sdpMid":"1","sdpMlineIndex":1} I/flutter (19957): {"candidate":"candidate:4180380889 1 udp 2122063615 127.0.0.1 37133 typ host generation 0 ufrag 5ysp network-id 1","sdpMid":"1","sdpMlineIndex":1} I/flutter (19957): {"candidate":"candidate:2717222544 1 udp 2122136831 ::1 56493 typ host generation 0 ufrag 5ysp network-id 2","sdpMid":"1","sdpMlineIndex":1} D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceCandidate D/FlutterWebRTCPlugin(19957): onIceGatheringChangeCOMPLETE I/flutter (19957): {"candidate":"candidate:4142279767 1 tcp 1518280447 1.126.201.166 9 typ host tcptype active generation 0 ufrag 5ysp network-id 3 network-cost 900","sdpMid":"0","sdpMlineIndex":0} I/flutter (19957): {"candidate":"candidate:125917261 1 tcp 1518083839 127.0.0.1 40767 typ host tcptype passive generation 0 ufrag 5ysp network-id 1","sdpMid":"0","sdpMlineIndex":0} I/flutter (19957): {"candidate":"candidate:1600082436 1 tcp 1518157055 ::1 46539 typ host tcptype passive generation 0 ufrag 5ysp network-id 2","sdpMid":"0","sdpMlineIndex":0} I/flutter (19957): {"candidate":"candidate:4142279767 1 tcp 1518280447 1.126.201.166 9 typ host tcptype active generation 0 ufrag 5ysp network-id 3 network-cost 900","sdpMid":"1","sdpMlineIndex":1} I/flutter (19957): {"candidate":"candidate:125917261 1 tcp 1518083839 127.0.0.1 41807 typ host tcptype passive generation 0 ufrag 5ysp network-id 1","sdpMid":"1","sdpMlineIndex":1} I/flutter (19957): {"candidate":"candidate:1600082436 1 tcp 1518157055 ::1 44139 typ host tcptype passive generation 0 ufrag 5ysp network-id 2","sdpMid":"1","sdpMlineIndex":1} I/flutter (19957): ICE connection state change: RTCIceGatheringState.RTCIceGatheringStateComplete I/org.webrtc.Logging(19957): EglRenderer: Duration: 4007 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/flutter (19957): bodi{"ok":true,"message":"Successfully sent signaling data to Edge Device!","data":{"sdp":"v=0\r\no=- 3905570538 3905570538 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1\r\na=msid-semantic:WMS \r\nm=audio 47631 UDP/TLS/RTP/SAVPF 111 0 8\r\nc=IN IP4 192.168.1.160\r\na=inactive\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=mid:0\r\na=msid:5df692bb-d811-4565-9308-59a6af692f92 5ec3d0fe-8ca6-48be-8978-1b0235550c4e\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=rtcp-mux\r\na=ssrc:2294664393 cname:26363ca8-df1a-4c70-8f9c-e595487ca7ee\r\na=rtpmap:111 opus/48000/2\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=candidate:28d209880624d7ce97adabf81fb990e0 1 udp 2130706431 192.168.1.160 47631 typ host\r\na=candidate:580b5f32035da7f14a30ea7a8d826c67 1 udp 2130706431 172.17.0.1 49616 typ host\r\na=candidate:95a5144d22d827ac85a6c13daea75649 1 udp 2130706431 172.18.0.1 60027 typ host\r\na=candidate:297898e4296c74660bb3ab65d8da90ec 1 udp 1694498815 37.202.49.154 60027 typ srflx raddr 172.18.0.1 rport 60027\r\na=candid I/flutter (19957): offer.sdp content goes here v=0 I/flutter (19957): o=- 7657752379674939525 2 IN IP4 127.0.0.1 I/flutter (19957): s=- I/flutter (19957): t=0 0 I/flutter (19957): a=group:BUNDLE 0 1 I/flutter (19957): a=extmap-allow-mixed I/flutter (19957): a=msid-semantic: WMS I/flutter (19957): m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 102 0 8 13 110 126 I/flutter (19957): c=IN IP4 0.0.0.0 I/flutter (19957): a=rtcp:9 IN IP4 0.0.0.0 I/flutter (19957): a=ice-ufrag:5ysp I/flutter (19957): a=ice-pwd:Eq6j7OMXO4DFnyha6YgDJUmr I/flutter (19957): a=ice-options:trickle renomination I/flutter (19957): a=fingerprint:sha-256 1E:81:D3:A2:BF:D8:41:7E:EF:31:66:4C:22:22:D4:98:1A:51:07:C9:77:BE:34:87:D7:77:D5:2D:67:0C:21:97 I/flutter (19957): a=setup:actpass I/flutter (19957): a=mid:0 I/flutter (19957): a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level I/flutter (19957): a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time I/flutter (19957): a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 I/flutter (19957): a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid I/flutter (19957): a=recvonly I/flutter (19957): a=rtcp-mux I/flutter (19957): a=rtpmap:111 opus/48000/2 I/flutter (19957): a=rtcp-fb:111 transport-cc I/flutter (19957): a=fmtp:111 minptime=10;useinbandfec=1 I/flutter (19957): a=rtpmap:63 red/48000/2 I/flutter (19957): a=fmtp:63 111/111 I/flutter (19957): a=rtpmap:9 G722/8000 I/flutter (19957): a=rtpmap:102 ILBC/8000 I/flutter (19957): a=rtpmap:0 PCMU/8000 I/flutter (19957): a=rtpmap:8 PCMA/8000 I/flutter (19957): a=rtpmap:13 CN/8000 I/flutter (19957): karsidan gelen cihazın sdp dökümü{ok: true, message: Successfully sent signaling data to Edge Device!, data: {sdp: v=0 I/flutter (19957): o=- 3905570538 3905570538 IN IP4 0.0.0.0 I/flutter (19957): s=- I/flutter (19957): t=0 0 I/flutter (19957): a=group:BUNDLE 0 1 I/flutter (19957): a=msid-semantic:WMS I/flutter (19957): m=audio 47631 UDP/TLS/RTP/SAVPF 111 0 8 I/flutter (19957): c=IN IP4 192.168.1.160 I/flutter (19957): a=inactive I/flutter (19957): a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid I/flutter (19957): a=mid:0 I/flutter (19957): a=msid:5df692bb-d811-4565-9308-59a6af692f92 5ec3d0fe-8ca6-48be-8978-1b0235550c4e I/flutter (19957): a=rtcp:9 IN IP4 0.0.0.0 I/flutter (19957): a=rtcp-mux I/flutter (19957): a=ssrc:2294664393 cname:26363ca8-df1a-4c70-8f9c-e595487ca7ee I/flutter (19957): a=rtpmap:111 opus/48000/2 I/flutter (19957): a=rtpmap:0 PCMU/8000 I/flutter (19957): a=rtpmap:8 PCMA/8000 I/flutter (19957): a=candidate:28d209880624d7ce97adabf81fb990e0 1 udp 2130706431 192.168.1.160 47631 typ host I/flutter (19957): a=candidate:580b5f32035da7f14a30ea7a8d826c67 1 udp 2130706431 172.17.0.1 49616 typ host I/flutter (19957): a=candidate:95a5144d22d827ac85a6c13daea75649 1 udp 2130706431 172.18.0.1 60027 typ host I/flutter (19957): a=candidate:297898e4296c74660bb3ab65d8da90ec 1 udp 1694498815 37.202.49.154 60027 typ srflx raddr 172.18.0.1 rport 60027 I/flutter (19957): a=candidate:5f8d2a792ae I/flutter (19957): karsidan gelen cihazın sdp dökümü Data{sdp: v=0 I/flutter (19957): o=- 3905570538 3905570538 IN IP4 0.0.0.0 I/flutter (19957): s=- I/flutter (19957): t=0 0 I/flutter (19957): a=group:BUNDLE 0 1 I/flutter (19957): a=msid-semantic:WMS I/flutter (19957): m=audio 47631 UDP/TLS/RTP/SAVPF 111 0 8 I/flutter (19957): c=IN IP4 192.168.1.160 I/flutter (19957): a=inactive I/flutter (19957): a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid I/flutter (19957): a=mid:0 I/flutter (19957): a=msid:5df692bb-d811-4565-9308-59a6af692f92 5ec3d0fe-8ca6-48be-8978-1b0235550c4e I/flutter (19957): a=rtcp:9 IN IP4 0.0.0.0 I/flutter (19957): a=rtcp-mux I/flutter (19957): a=ssrc:2294664393 cname:26363ca8-df1a-4c70-8f9c-e595487ca7ee I/flutter (19957): a=rtpmap:111 opus/48000/2 I/flutter (19957): a=rtpmap:0 PCMU/8000 I/flutter (19957): a=rtpmap:8 PCMA/8000 I/flutter (19957): a=candidate:28d209880624d7ce97adabf81fb990e0 1 udp 2130706431 192.168.1.160 47631 typ host I/flutter (19957): a=candidate:580b5f32035da7f14a30ea7a8d826c67 1 udp 2130706431 172.17.0.1 49616 typ host I/flutter (19957): a=candidate:95a5144d22d827ac85a6c13daea75649 1 udp 2130706431 172.18.0.1 60027 typ host I/flutter (19957): a=candidate:297898e4296c74660bb3ab65d8da90ec 1 udp 1694498815 37.202.49.154 60027 typ srflx raddr 172.18.0.1 rport 60027 I/flutter (19957): a=candidate:5f8d2a792aeda4a9b64093c8814c4b5a 1 udp 1694498815 37.202.49.154 47631 typ srflx ra I/flutter (19957): karsidan gelen cihazın sdp dökümü SDP v=0 I/flutter (19957): o=- 3905570538 3905570538 IN IP4 0.0.0.0 I/flutter (19957): s=- I/flutter (19957): t=0 0 I/flutter (19957): a=group:BUNDLE 0 1 I/flutter (19957): a=msid-semantic:WMS I/flutter (19957): m=audio 47631 UDP/TLS/RTP/SAVPF 111 0 8 I/flutter (19957): c=IN IP4 192.168.1.160 I/flutter (19957): a=inactive I/flutter (19957): a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid I/flutter (19957): a=mid:0 I/flutter (19957): a=msid:5df692bb-d811-4565-9308-59a6af692f92 5ec3d0fe-8ca6-48be-8978-1b0235550c4e I/flutter (19957): a=rtcp:9 IN IP4 0.0.0.0 I/flutter (19957): a=rtcp-mux I/flutter (19957): a=ssrc:2294664393 cname:26363ca8-df1a-4c70-8f9c-e595487ca7ee I/flutter (19957): a=rtpmap:111 opus/48000/2 I/flutter (19957): a=rtpmap:0 PCMU/8000 I/flutter (19957): a=rtpmap:8 PCMA/8000 I/flutter (19957): a=candidate:28d209880624d7ce97adabf81fb990e0 1 udp 2130706431 192.168.1.160 47631 typ host I/flutter (19957): a=candidate:580b5f32035da7f14a30ea7a8d826c67 1 udp 2130706431 172.17.0.1 49616 typ host I/flutter (19957): a=candidate:95a5144d22d827ac85a6c13daea75649 1 udp 2130706431 172.18.0.1 60027 typ host I/flutter (19957): a=candidate:297898e4296c74660bb3ab65d8da90ec 1 udp 1694498815 37.202.49.154 60027 typ srflx raddr 172.18.0.1 rport 60027 I/flutter (19957): a=candidate:5f8d2a792aeda4a9b64093c8814c4b5a 1 udp 1694498815 37.202.49.154 47631 typ srflx raddr 19 D/FlutterWebRTCPlugin(19957): onAddTrack D/FlutterWebRTCPlugin(19957): onConnectionChangeCONNECTING I/flutter (19957): Signaling state change: RTCSignalingState.RTCSignalingStateStable I/flutter (19957): ICE gathering state changed: RTCIceConnectionState.RTCIceConnectionStateChecking I/flutter (19957): Got remote track: 5df692bb-d811-4565-9308-59a6af692f92 I/flutter (19957): Add a track to the remoteStream Track(id: 13d3407b-ae39-47ab-b709-7316b26cc060, kind: video, label: video, enabled: true, muted: false) I/flutter (19957): Add remote stream I/flutter (19957): eklendi5df692bb-d811-4565-9308-59a6af692f92 W/FlutterWebRTCPlugin(19957): FlutterRTCVideoRenderer.setVideoTrack, set video track to 13d3407b-ae39-47ab-b709-7316b26cc060 I/flutter (19957): Connection state change: RTCPeerConnectionState.RTCPeerConnectionStateConnecting I/org.webrtc.Logging(19957): EglRenderer: Releasing. I/org.webrtc.Logging(19957): EglRenderer: eglBase detach and release. I/org.webrtc.Logging(19957): EglRenderer: Quitting render thread. D/libMEOW (19957): meow delete tls: 0xb4000073ca2cb0d0 I/org.webrtc.Logging(19957): EglRenderer: Releasing done. I/org.webrtc.Logging(19957): EglRenderer: Initializing EglRenderer I/org.webrtc.Logging(19957): EglRenderer: EglBase.create shared context D/libMEOW (19957): meow new tls: 0xb4000073caa8b890 D/libMEOW (19957): applied 2 plugins for [com.cordatus_mobil]: D/libMEOW (19957): plugin 1: [libMEOW_gift.so]: D/libMEOW (19957): plugin 2: [libMEOW_semaphore]: I/org.webrtc.Logging(19957): EglBase14Impl: Using OpenGL ES version 2 I/org.webrtc.Logging(19957): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4005 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4006 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4006 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4011 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. D/FlutterWebRTCPlugin(19957): onConnectionChangeFAILED I/flutter (19957): ICE gathering state changed: RTCIceConnectionState.RTCIceConnectionStateFailed I/flutter (19957): Connection state change: RTCPeerConnectionState.RTCPeerConnectionStateFailed I/org.webrtc.Logging(19957): EglRenderer: Duration: 4009 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4011 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4010 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4009 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4008 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4010 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4007 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/ViewRootImpl@2245d1dMainActivity: handleAppVisibility mAppVisible = true visible = false I/SurfaceView@d0f05e2(19957): onWindowVisibilityChanged(8) false io.flutter.embedding.android.FlutterSurfaceView{d0f05e2 V.E...... ........ 0,0-1080,2205} of ViewRootImpl@2245d1d[MainActivity] I/SurfaceView@d0f05e2(19957): Changes: creating=false format=false size=false visible=true alpha=false hint=false mUseAlpha=false visible=true left=false top=false I/SurfaceView@d0f05e2(19957): 219088354 Cur surface: Surface(name=null)/@0x3b8106d I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: vri = ViewRootImpl@2245d1d[MainActivity] fRS = false t = 0xb40000727a2a9690 android.view.SurfaceView.performSurfaceTransaction:959 android.view.SurfaceView.updateSurface:1105 android.view.SurfaceView.onWindowVisibilityChanged:371 I/ViewRootImpl@2245d1dMainActivity: applyTransactionOnDraw: mRemoved = false isHardwareEnabled = true t = 0xb40000727a2a9690android.view.SurfaceView.applyTransactionOnVriDraw:2048 android.view.SurfaceView.performSurfaceTransaction:959 android.view.SurfaceView.updateSurface:1105 android.view.SurfaceView.onWindowVisibilityChanged:371 android.view.View.dispatchWindowVisibilityChanged:15943 I/SurfaceView@d0f05e2(19957): surfaceDestroyed I/SurfaceView@d0f05e2(19957): surfaceDestroyed callback.size 1 #2 io.flutter.embedding.android.FlutterSurfaceView{d0f05e2 V.E...... ........ 0,0-1080,2205} I/SurfaceView@d0f05e2(19957): updateSurface: mVisible = false mSurface.isValid() = true I/SurfaceView@d0f05e2(19957): releaseSurfaces: viewRoot = ViewRootImpl@2245d1d[MainActivity] I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: vri = ViewRootImpl@2245d1d[MainActivity] fRS = true t = 0xb40000727a2bb570 android.view.SurfaceView.releaseSurfaces:858 android.view.SurfaceView.updateSurface:1172 android.view.SurfaceView.onWindowVisibilityChanged:371 I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: viewRoot.applyTransactionOnDrawFromReleaseSurfaces I/ViewRootImpl@2245d1dMainActivity: from releaseSurfaces t.apply t = 0xb40000727a2bb570 V/SurfaceView@d0f05e2(19957): Layout: x=0 y=0 w=1080 h=2205, frame=Rect(0, 0 - 1080, 2205) D/SurfaceView@d0f05e2(19957): windowPositionLost, frameNr = 0 D/OpenGLRenderer(19957): setSurface called with nullptr D/OpenGLRenderer(19957): setSurface() destroyed EGLSurface D/OpenGLRenderer(19957): destroyEglSurface I/ViewRootImpl@2245d1dMainActivity: performTraversals mFirst=false windowShouldResize=false viewVisibilityChanged=true mForceNextWindowRelayout=false params=null I/BLASTBufferQueue(19957): ViewRootImpl@2245d1d[MainActivity]#16 destructor() D/BufferQueueConsumer(19957): ViewRootImpl@2245d1d[MainActivity]#16(BLAST Consumer)16 disconnect I/ViewRootImpl@2245d1dMainActivity: Relayout returned: old=(0,0,1080,2340) new=(0,0,1080,2340) req=(1080,2340)8 dur=15 res=0x2 s={false 0x0} ch=true seqId=0 I/SurfaceView@d0f05e2(19957): windowStopped(true) false io.flutter.embedding.android.FlutterSurfaceView{d0f05e2 V.E...... ........ 0,0-1080,2205} of ViewRootImpl@2245d1d[MainActivity] D/SurfaceView@d0f05e2(19957): updateSurface: surface is not valid I/SurfaceView@d0f05e2(19957): releaseSurfaces: viewRoot = ViewRootImpl@2245d1d[MainActivity] I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: vri = ViewRootImpl@2245d1d[MainActivity] fRS = true t = 0xb40000727a2ba5b0 android.view.SurfaceView.releaseSurfaces:858 android.view.SurfaceView.updateSurface:998 android.view.SurfaceView.setWindowStopped:335 I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: viewRoot.applyTransactionOnDrawFromReleaseSurfaces I/ViewRootImpl@2245d1dMainActivity: from releaseSurfaces t.apply t = 0xb40000727a2ba5b0 D/SurfaceView@d0f05e2(19957): updateSurface: surface is not valid I/SurfaceView@d0f05e2(19957): releaseSurfaces: viewRoot = ViewRootImpl@2245d1d[MainActivity] I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: vri = ViewRootImpl@2245d1d[MainActivity] fRS = true t = 0xb40000727a268170 android.view.SurfaceView.releaseSurfaces:858 android.view.SurfaceView.updateSurface:998 android.view.SurfaceView.lambda$new$0$android-view-SurfaceView:200 I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: viewRoot.applyTransactionOnDrawFromReleaseSurfaces I/ViewRootImpl@2245d1dMainActivity: from releaseSurfaces t.apply t = 0xb40000727a268170 I/ViewRootImpl@2245d1dMainActivity: stopped(true) old = false I/ViewRootImpl@2245d1dMainActivity: WindowStopped on com.cordatus_mobil/com.cordatus_mobil.MainActivity set to true D/SurfaceView@d0f05e2(19957): updateSurface: surface is not valid I/SurfaceView@d0f05e2(19957): releaseSurfaces: viewRoot = ViewRootImpl@2245d1d[MainActivity] I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: vri = ViewRootImpl@2245d1d[MainActivity] fRS = true t = 0xb40000727a2bbb10 android.view.SurfaceView.releaseSurfaces:858 android.view.SurfaceView.updateSurface:998 android.view.SurfaceView.setVisibility:392 I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: viewRoot.applyTransactionOnDrawFromReleaseSurfaces I/ViewRootImpl@2245d1dMainActivity: from releaseSurfaces t.apply t = 0xb40000727a2bbb10 I/MSHandlerLifeCycle(19957): removeMultiSplitHandler: no exist. decor=DecorView@72a37eb[MainActivity] I/ViewRootImpl(19957): updatePointerIcon pointerType = 1000, calling pid = 19957 D/InputManager(19957): setPointerIconType iconId = 1000, callingPid = 19957 D/SurfaceView@d0f05e2(19957): updateSurface: surface is not valid I/SurfaceView@d0f05e2(19957): releaseSurfaces: viewRoot = ViewRootImpl@2245d1d[MainActivity] I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: vri = ViewRootImpl@2245d1d[MainActivity] fRS = true t = 0xb40000727a263f10 android.view.SurfaceView.releaseSurfaces:858 android.view.SurfaceView.updateSurface:998 android.view.SurfaceView.lambda$new$0$android-view-SurfaceView:200 I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: viewRoot.applyTransactionOnDrawFromReleaseSurfaces I/ViewRootImpl@2245d1dMainActivity: from releaseSurfaces t.apply t = 0xb40000727a263f10 I/BLASTBufferQueue(19957): SurfaceView[com.cordatus_mobil/com.cordatus_mobil.MainActivity]@0#17 destructor() D/BufferQueueConsumer(19957): SurfaceView[com.cordatus_mobil/com.cordatus_mobil.MainActivity]@0#17(BLAST Consumer)17 disconnect I/ViewRootImpl@2245d1dMainActivity: MSG_WINDOW_FOCUS_CHANGED 0 0 D/SurfaceView@d0f05e2(19957): updateSurface: surface is not valid I/SurfaceView@d0f05e2(19957): releaseSurfaces: viewRoot = ViewRootImpl@2245d1d[MainActivity] I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: vri = ViewRootImpl@2245d1d[MainActivity] fRS = true t = 0xb40000727a2afab0 android.view.SurfaceView.releaseSurfaces:858 android.view.SurfaceView.updateSurface:998 android.view.SurfaceView.lambda$new$0$android-view-SurfaceView:200 I/SurfaceView@d0f05e2(19957): applyTransactionOnVriDraw: viewRoot.applyTransactionOnDrawFromReleaseSurfaces I/ViewRootImpl@2245d1dMainActivity: from releaseSurfaces t.apply t = 0xb40000727a2afab0 I/FA (19957): Application backgrounded at: timestamp_millis: 1696581767911 I/org.webrtc.Logging(19957): EglRenderer: Duration: 4015 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA. I/org.webrtc.Logging(19957): EglRenderer: Duration: 4011 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: ,0. Average render time: NA. Average swapBuffer time: NA.

LucasMdosAnjos commented 1 year ago

i solved this by upgrading the Flutter version to 3.13.x

1993alexey commented 1 year ago

Your logs indicate a failure in peer connection. What ice servers are you using? It's possible there was no successful ice candidate pair. Make sure both sides send a candidate that is not of type 'host'.

ps60679666 commented 10 months ago

With 1 wifi it is showing black screen. and with other wifi and mobile interent it's working absolutely fine.

ayechan-maung commented 10 months ago

As for me, the black screen is when the user open with Firefox browser, but open with Chrome the video is appear in mobile.

ALUZZ-Creat commented 4 months ago

did you get any solution for this

a-3isa commented 3 weeks ago

Did you solve the problem ?