0

我在我的 React Native 项目中使用Agora.io进行视频通话,我想知道我什么时候会给某人打电话,我会加入频道,但是我怎样才能在接收器移动设备上显示应用程序内的来电 UI。这样他也可以加入频道开始通话。如果您有任何资源,请告诉我。谢谢

这是初始化 agro sdk 的代码

init = async () => {
    const {appId} = this.state;
    this._engine = await RtcEngine.create(appId);
    await this._engine.enableVideo();
    this.startCall();
    this._engine.addListener('Warning', (warn) => {
      console.log('Warning', warn);
    });

    this._engine.addListener('Error', (err) => {
      console.log('Error', err);
    });

    this._engine.addListener('UserJoined', (uid, elapsed) => {
      console.log('UserJoined', uid, elapsed);
      // Get current peer IDs
      const {peerIds} = this.state;
      // If new user
      if (peerIds.indexOf(uid) === -1) {
        this.setState({
          // Add peer ID to state array
          peerIds: [...peerIds, uid],
        });
      }
    });

    this._engine.addListener('UserOffline', (uid, reason) => {
      console.log('UserOffline', uid, reason);
      const {peerIds} = this.state;
      this.setState({
        // Remove peer ID from state array
        peerIds: peerIds.filter((id) => id !== uid),
      });
    });

    // If Local user joins RTC channel
    this._engine.addListener('JoinChannelSuccess', (channel, uid, elapsed) => {
      console.log('JoinChannelSuccess', channel, uid, elapsed);
      // Set state variable to true
      this.setState({
        joinSucceed: true,
      });
    });
  };

这是开始通话的代码

 startCall = async () => {
    // Join Channel using null token and channel name
    await this._engine?.joinChannel(
      this.state.token,
      this.state.channelName,
      null,
      0,
    );
  };

接听者如何接听电话

4

1 回答 1

0

Agora SDK 没有任何内置功能。一个很棒的图书馆将是react-native-callkeep.

https://github.com/react-native-webrtc/react-native-callkeep

本质上,当有人试图给你打电话时,这个库将帮助你绘制一个 UI。它使用 firebase 推送通知来通知被调用者。

于 2021-01-11T18:00:09.097 回答