当前位置:主页 > 查看内容

实时音视频 TRTCCalling API(Android) - 场景实践

发布时间:2021-10-24 00:00| 位朋友查看

简介:TRTCCalling 是基于腾讯云实时音视频(TRTC)和即时通信 IM 服务组合而成的,支持1v1和多人视频通话。TRTCCalling 是一个开源的 Class,依赖腾讯云的两个闭源 SDK,具体的实现过程请参见 实时视频通话(Android)。 TRTC SDK:使用 TRTC SDK 作为低延时音视……

TRTCCalling 是基于腾讯云实时音视频(TRTC)和即时通信 IM 服务组合而成的,支持1v1和多人视频通话。TRTCCalling 是一个开源的 Class,依赖腾讯云的两个闭源 SDK,具体的实现过程请参见 实时视频通话(Android)。

  • TRTC SDK:使用 TRTC SDK 作为低延时音视频通话组件。
  • IM SDK:使用 IM SDK 发送和处理信令消息。

TRTCCalling API 概览

SDK 基础函数

API 描述
sharedInstance 组件单例。
destroySharedInstance 销毁组件单例。
addDelegate 增加事件回调。
removeDelegate 移除回调接口。
destroy 销毁函数,如果无需再运行该实例,请调用该接口。
login 登录组件接口,所有功能需要先进行登录后才能使用。
logout 登出组件接口,登出后无法再进行拨打操作。

通话操作相关接口函数

API 描述
call 单人通话邀请。
groupCall 群聊通话邀请。
accept 接受当前通话。
reject 拒绝当前通话。
hangup 结束当前通话。

推拉流相关接口函数

API 描述
startRemoteView 远端用户的摄像头数据渲染到指定的 TXCloudVideoView 中。
stopRemoteView 停止渲染远端数据。

音视频控制相关接口函数

API 描述
openCamera 开启摄像头,并渲染在指定的 TXCloudVideoView 中。
switchCamera 切换前后摄像头。
closeCamara 关闭摄像头。
setMicMute 静音本地音频采集。
setHandsFree 设置免提。

TRTCCallingDelegate API 概览

通用事件回调

API 描述
onError 错误回调。

邀请方回调

API 描述
onReject 拒绝通话回调。
onNoResp 对方无回应回调。
onLineBusy 通话忙线回调。

被邀请方回调

API 描述
onInvited 被邀请通话回调。
onCallingCancel 当前通话被取消回调。
onCallingTimeOut 当前通话超时回调。

通用回调

API 描述
onGroupCallInviteeListUpdate 群聊更新邀请列表回调。
onUserEnter 用户进入通话回调。
onUserLeave 用户离开通话回调。
onUserAudioAvailable 用户是否开启音频上行回调。
onUserVideoAvailable 用户是否开启视频上行回调。
onUserVoiceVolume 用户通话音量回调。
onCallEnd 通话结束回调。

SDK 基础函数

sharedInstance

sharedInstance 是 TRTCCalling 的组件单例。

public static ITRTCCalling sharedInstance(Context context);

destroySharedInstance

销毁组件单例。

public static void destroySharedInstance();

destroy

销毁函数,如果无需再运行该实例,请调用该接口。

void destroy();

addDelegate

TRTCCalling 事件回调,您可以通过 TRTCCallingDelegate 获得 TRTCCalling 的各种状态通知。

public abstract void addDelegate(TRTCCallingDelegate delegate);
说明:

TRTCCallingDelegate 是 TRTCCalling 的代理回调。

removeListener

移除回调接口。

void removeDelegate(TRTCCallingDelegate listener);

login

登录组件。

void login( int sdkAppId,
          final String userId, 
          String userSign, 
          final ActionCallBack callback);

参数如下表所示:

参数 类型 含义
sdkAppID UInt32 您可以在实时音视频控制台 >【应用管理】> 应用信息中查看 SDKAppID。
user String 当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。
userSig String 腾讯云设计的一种安全保护签名,获取方式请参考 如何计算 UserSig。
callback ActionCallBack 登录回调,onSuccess 表示登录成功。

logout

登出组件。

void logout(final ActionCallBack callBack);

参数如下表所示:

参数 类型 含义
callBack ActionCallBack 登出回调,onSuccess 表示登出成功。

通话操作相关接口函数

call

单人通话邀请,当前处于通话中也可继续调用邀请他人。

void call(String userId, int type);

参数如下表所示:

参数 类型 含义
userId String 呼叫用户 ID。
type int 1 表示语音通话,2 表示视频通话。

groupCall

IM 群组邀请通话,被邀请方会收到 onInvited() 回调。如果当前处于通话中,可以继续调用该函数继续邀请他人进入通话,同时正在通话的用户会收到 onGroupCallInviteeListUpdate() 回调。

void groupCall(List<String> userIdList, int type, String groupId);

参数如下表所示:

参数 类型 含义
userIdList List<String> 邀请 ID 列表。
type int 1 表示语音通话,2 表示视频通话。
groupId String 群 ID。

accept

接受当前通话。当您作为被邀请方收到 onInvited() 的回调时,可以调用该函数接听来电。

void accept();

reject

拒绝当前通话。当您作为被邀请方收到 onInvited() 的回调时,可以调用该函数拒绝来电。

void reject();

hangup

挂断当前通话。当您处于通话中,可以调用该函数结束通话。

void hangup();

推拉流相关接口函数

startRemoteView

远端用户的摄像头数据渲染到指定的 TXCloudVideoView 中。

void startRemoteView(String userId, TXCloudVideoView txCloudVideoView);

参数如下表所示:

参数 类型 含义
userId String 远端用户 ID。
view TXCloudVideoView 承载视频画面的控件。

stopRemoteView

停止渲染远端数据。

void stopRemoteView(String userId);

参数如下表所示:

参数 类型 含义
userId String 远端用户 ID。

音视频控制相关接口函数

openCamera

开启摄像头,并渲染在指定的 TXCloudVideoView 中。

void openCamera(boolean isFrontCamera, TXCloudVideoView txCloudVideoView);

参数如下表所示:

参数 类型 含义
isFrontCamera boolean true 表示开启前置摄像头,false 表示开启后置摄像头。
view TXCloudVideoView 承载视频画面的控件。

switchCamera

切换前后摄像头。

void switchCamera(boolean isFrontCamera);

参数如下表所示:

参数 类型 含义
isFrontCamera boolean true 表示切换到前置摄像头,false 表示切换到后置摄像头。

closeCamara

关闭摄像头。

void closeCamera();

setMicMute

静音本地音频采集。

void setMicMute(boolean isMute);

参数如下表所示:

参数 类型 含义
isMute boolean true 表示麦克风关闭,false 表示麦克风打开。

setHandsFree

静音远端音频。

void setHandsFree(boolean isHandsFree);

参数如下表所示:

参数 类型 含义
isHandsFree boolean true 表示开启免提,false 表示关闭免提。

TRTCCallingDelegate 事件回调

通用事件回调

onError

错误回调。

说明:

SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。

void onError(int code, String msg);

参数如下表所示:

参数 类型 含义
code int 错误码。
msg String 错误信息。

邀请方回调

onReject

拒绝通话回调。

void onReject(String userId);

参数如下表所示:

参数 类型 含义
userId String 拒绝用户的 ID。

onNoResp

对方无回应回调。

void onNoResp(String userId);

参数如下表所示:

参数 类型 含义
userId String 无回应用户的 ID。

onLineBusy

通话忙线回调。

void onLineBusy(String userId);

参数如下表所示:

参数 类型 含义
userId String 忙线用户的 ID。

被邀请方回调

onInvited

被邀请通话回调。

void onInvited(String sponsor, List<String> userIdList, boolean isFromGroup, int callType);

参数如下表所示:

参数 类型 含义
sponsor String 发起方的 ID。
userIds List<String> 除自己外被邀请 ID 列表。
isFromGroup boolean 是否多人通话邀请。
type int 1 表示语音通话,2 表示视频通话。

onCallingCancel

当前通话被取消回调。接收方未处理请求,邀请方取消后会收到此回调。

void onCallingCancel();

onCallingTimeOut

当前通话超时回调。

void onCallingTimeout();

通用回调

onGroupCallInviteeListUpdate

群聊更新邀请列表回调。

void onGroupCallInviteeListUpdate(List<String> userIdList);

参数如下表所示:

参数 类型 含义
userIdList List<String> 邀请 ID 列表。

onUserEnter

用户进入通话回调。

void onUserEnter(String userId);

参数如下表所示:

参数 类型 含义
userId String 进入通话用户 ID。

onUserLeave

用户离开通话回调。

void onUserLeave(String userId);

参数如下表所示:

参数 类型 含义
userId String 离开通话用户 ID。

onUserAudioAvailable

用户是否开启音频上行回调。

void onUserAudioAvailable(String userId, boolean available);

参数如下表所示:

参数 类型 含义
userId String 通话用户 ID。
available boolean 用户音频是否可用。

onUserVideoAvailable

用户是否开启视频上行回调。收到通知后,用户可调用 startRemoteView 渲染远端视频。

void onUserVideoAvailable(String userId, boolean available);

参数如下表所示:

参数 类型 含义
userId String 通话用户 ID。
available boolean 用户视频是否可用。

onUserVoiceVolume

用户通话音量回调。

void onUserVoiceVolume(Map<String, Integer> volumeMap);

参数如下表所示:

参数 类型 含义
volumeMap Map<String, Integer> 音量表,根据每个 userid 可以获取对应的音量大小,音量最小值为0,音量最大值为100。

onCallEnd

通话结束回调。

void onCallEnd();

本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:创建与删除_文档数据库服务 DDS_常见问题 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐