扑通--webRTC视频通话信号不工作。

问题描述 投票:0回答:1

我可以使用agora.io库实现语音和视频通话,该库可在以下网站获得 https:/www.agora.io && https:/github.comAgoraIOFlutter-SDK。

如何启动一个呼叫的过程是用户必须手动或自动加入一个由用户定义的特定通道名,这是不实际的方式。有什么方法可以创建一个单独的信号系统(可能使用,nodejs socket,firebase或one-signal notification?

有什么同时并行的方式,或者有什么完整的选择?

flutter webrtc agora.io
1个回答
1
投票

Agora.io不提供任何方法,除了手动传递通道名或默认字符串。但你可以做的是使用Firebase动态链接,通过动态链接来共享通道名。这个链接会将你重定向到你输入通道名的页面,并根据传递的参数来填充通道名。所以你的代码看起来会像这样。

 class AgoraImpementation extends State<AgoraImplementation> {

  @override
  void initState() {
    super.initState();
    this.initDynamicLinks();
  }

  initDynamicLinks(BuildContext context) async {
    await Future.delayed(Duration(seconds: 3));
    var data = await FirebaseDynamicLinks.instance.getInitialLink();
    var deepLink = data?.link;
    final queryParams = deepLink.queryParameters;
    if (queryParams.length > 0) {
      var channelName = queryParams['channel_name'];
      openFormScreen(channelName);
    }
    FirebaseDynamicLinks.instance.onLink(onSuccess: (dynamicLink)
    async {
      var deepLink = dynamicLink?.link;
      final queryParams = deepLink.queryParameters;
      if (queryParams.length > 0) {
        var userName = queryParams['channel_name'];
        openFormScreen(channelName);
      }
      debugPrint('DynamicLinks onLink $deepLink');
    }, onError: (e) async {
      debugPrint('DynamicLinks onError $e');
    });
  }

  openFormScreen(String userName){
    Navigator.of(context).pushNamed("routeFormScreen", arguments: {"channelName": channelName});
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.