无法在不重新加载的情况下使用Flutter_WebRTC软件包

时间:2020-10-01 08:27:24

标签: android flutter webrtc

我正在尝试使用package不稳定的WebRTC。我以以下方式使用它:

  1. 声明localRenderer。
  2. 初始化它。
  3. 调用getUserMedia函数以获取流。
  4. 将localRenderer的srcObject分配给流。
  5. 在RTCVideoView小部件中查看本地渲染器。

我在initState中使用2和3,在getUserMedia中使用4。

但是,我面临的是。首先,视频不出现。直到在调试时使用r重新加载它,它突然出现。

在生产中可能无法重新加载。是否有一种无需每次都重新加载即可观看视频的方法?

1 个答案:

答案 0 :(得分:1)

将 localRenderer 的 srcObject 分配给流时,请确保您在 setState 中执行此操作。

该函数应如下所示:

playVideoFromCamera() async {
    final constraints = {'video': true, 'audio': true};
    final stream = await navigator.mediaDevices.getUserMedia(constraints);
   setState(() {
      _localRenderer.srcObject = stream;
   });
}

并在 initState 中结束

@override
  void initState() {
    super.initState();
    initRenderers();
    playVideoFromCamera();
  }