开发者中心
All
Agora.io 社区
如何判断一个通话是语音通话还是视频通话?
分类: 集成类    平台: Android / iOS / macOS / Web / Windows / Linux   最后更新时间: 2020/11/12 00:11:54

在实时音视频通话场景中,你可以通过 Agora RTM SDK 或 Agora RTC SDK 判断一个即将开始或正在进行的通话是语音通话还是视频通话。

通话前判断

如果需要在通话前进行判断并将通话类型发送给接收端,请确保你的项目中已经集成了 RTM SDK 和 RTC SDK。具体的集成文档请参考:

具体实现步骤如下:

  1. 在主叫发送通话时使用 RTM SDK 的呼叫邀请相关 API 对被叫进行呼叫邀请。
  2. 调用 sendMessageToPeer 方法把通话类型以点对点消息的方式发送给被叫。被叫在收到呼叫邀请时也会收到这条点对点消息,从而获取通话类型。

通话中判断

如果需要在通话中进行判断并将通话类型发送给接收端,请确保你的项目中已经集成了 RTC SDK。具体的集成文档请参考:

在通话中,接收端可以直接通过以下方法判断通话类型:

各语言方法对照表

本文提及的方法和回调名均为 Java 语言。其他语言对应的方法名如下表所示:

Java/C++ Objective-C JavaScript
sendMessageToPeer sendMessage:toPeer:sendMessageOptions:completion: sendMessage
onRemoteAudioStateChanged remoteAudioStateChangedOfUid getRemoteAudioStats
onRemoteVideoStateChanged remoteVideoStateChangedOfUid getRemoteVideoStats
score