2

the flutter_webrtc work on browser but on phone it is not working. in debug console it gives


***I/org.webrtc.Logging( 5106): EglRenderer: Duration: 4001 ms. Frames received: 46. Dropped: 0. Rendered: 46. Render fps: 11.5. Average render time: 1359 us. Average swapBuffer time: 944 us.s. Average swapBuffer time: 982 us. : ****

**

class _testState extends State<test> {
      final localRender=RTCVideoRenderer();
      @override
      void initState() {
        // TODO: implement initState
            getUserMedia();
    
        localRender.initialize();
        super.initState();
      }
      void dispose(){
        localRender.dispose();
        super.dispose();
      }
      
       getUserMedia() async {
      try {
        MediaStream stream = await navigator.mediaDevices.getUserMedia({"audio":true,"video":true});
        print(stream.toString());
        localRender.srcObject = stream;
        print("working");
      } catch (e) {
        print("Failed to get user media: $e");
      }
    
      }
      @override
      
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(title: Text("title"),),
          body: Container(
            height: 300,
            width: 200,
            child:RTCVideoView(localRender,mirror: true,)
          ),
        );
      }
    }

1 Answers1

0

add those lines to your androidManifest.xml :

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

if it doesn't work , I think that you should provide more information to spot the problem .