公共接口

本文介绍音视频通话 API 在接入 Android 时涉及的公共接口。

接口类型

API

说明

基础接口

getInstance

创建 AlipayRtcEngine 实例(同一时间只会存在一个实例)。

setRtcListenerAndHandler

设置回调事件的监听和对应的 Handler。

setImListener

设置 IM 文本信息交互的监听。

setInviteListener

设置邀请模式下邀请信息的监听。

setCustomPublishListener

设置自定义推流模式下的本地预览监听。

destroy

销毁引擎。

onUserLeaveOrReturn

非支付宝 App 用于通知压后台回前台事件,用于压后台关闭摄像头、悬浮框权限监听、悬浮框弹出和隐藏。

  • onResume 回前台为 1。

  • onPause 压后台为 0。

房间相关接口

createRoom

创建房间。

joinRoom

加入房间。

leaveRoom

离开房间。

setAutoPublishSubscribe

设置是否自动发布,是否自动订阅。

发布相关接口

isAutoPublish

查询当前是否为自动发布模式。

configAutoPublish

设置是否允许发布视频流。

getCurrentAutoPublishConfig

获取当前自动发布的配置。

publish

手动发布设置的音频流和视频流。

unpublish

取消发布流。

updateVideoProfile

切换发布分辨率。

pushCustomVideoData

自定义推流,推送自定义图像数据。

订阅相关接口

isAutoSubscribe

查询当前是否为自动订阅模式。

subscribe

手动订阅视频和音频流。

unsubscribe

取消订阅流。

视频相关接口

muteLocalVideo

设置是否暂停发布本地视频流。

muteAllLocalVideo

设置是否暂停发布本地所有的视频流。

switchCamera

切换前后摄像头。

muteRemoteVideo

设置是否暂停播放远端视频流。

muteAllRemoteVideo

设置是否暂停播放所有的远端视频流。

音频相关接口

muteLocalAudio

设置是否暂停发布本地音频。

muteAllLocalAudio

设置是否暂停本地所有音频流。

muteRemoteAudio

设置是否暂停播放远端音频流。

muteAllRemoteAudio

设置是否暂停播放所有远端音频流。

enableSpeaker

设置是否切换扬声器输出。

预览接口

startCameraPreview

开始本地相机预览。

stopCameraPreview

停止本地相机预览。

查询远端用户接口

getRemoteUsers

获取远端用户信息。

其他接口

setLogger

设置自定义日志输出。

invite

邀请对方加入。

replyInvite

回复对方邀请。

sendMessage

发送文本消息。

snapshot

针对某路视频流进行截屏。

onRequestPermissionsResult

如果需要处理权限申请,则业务需要将该权限申请结果通过该接口通知到 SDK 层进行对应的处理。

onActivityResult

屏幕共享权限申请回调。

getInstance

  • 声明public static AlipayRtcEngine getInstance( Context context )

  • 说明:创建 AlipayRtcEngine 实例(同一时间只会存在一个实例)。

    说明

    由于涉及到权限申请,此处的 context 必须是 activity 的 context。

  • 参数

    参数

    类型

    说明

    context

    Context

    上下文内容

  • 返回值:无。

setRtcListenerAndHandler

  • 声明public void setRtcEngineEventListener( AlipayRtcEngineEventListener listener, Handler handler )

  • 说明:设置回调事件的监听。

  • 参数

    参数

    类型

    说明

    listener

    AlipayRtcEngineEventListener

    接收回调事件的监听器。

    handler

    Handler

    回调事件的 handler,必须设置,不建议使用主线程的 handler,建议新建一个线程处理回调。

    如果没有设置,则无法回调任何结果。

  • 返回值:无。

setImListener

  • 声明public void setImListener( AlipayRtcEngineIMListener imListener )

  • 说明:设置文本信息交互的监听。

  • 参数

    参数

    类型

    说明

    listener

    AlipayRtcEngineIMListener

    文本交互监听器。

  • 返回值:无。

setInviteListener

  • 声明public void setInviteListener( AlipayRtcEngineInviteListener inviteListener )

  • 说明:设置邀请模式下的邀请信息监听。

  • 参数

    参数

    类型

    说明

    listener

    AlipayRtcEngineInviteListener

    邀请模式下的交互监听器。

  • 返回值:无。

setCustomPublishListener

  • 声明public void setCustomPublishListener( AlipayRtcEngineCustomPublishListener listener )

  • 说明:设置自定义推流模式下的本地预览监听,当前包括屏幕共享和自定义推流。如果当前没有使用到自定义推流模式,可以不设置该参数。

  • 参数

    参数

    类型

    说明

    listener

    AlipayRtcEngineCustomPublishListener

    自定义推流的本地 view 交互 listener。

  • 返回值:无。

destroy

  • 声明public void destroy()

  • 说明:销毁引擎,destroy 后,会退出房间,同时销毁本地引擎,再次使用功能,需要重新 getInstance() 初始化引擎。

  • 参数:无。

  • 返回值:无。

onUserLeaveOrReturn

  • 声明:public void onUserLeaveOrReturn( int type )

  • 说明:业务调用此接口告知 App 的前后台状态发生了改变。

  • 参数:

    参数

    类型

    说明

    type

    int

    前后台状态标志:

    • 1:表示 App 从后台切到前台,传入值为 1。

    • 0:表示 App 从前台切到后台,传入值为 0。

  • 返回值:无。

createRoom

  • 声明public void createRoom( CreateRoomParams params )

  • 说明:创建房间,房间创建后可以通知其他人,邀请他们加入该房间。创建房间的结果由回调中的 void onRoomInfo( RoomInfo info ) 返回,详情请参见 回调函数

  • 参数

    参数

    类型

    说明

    params

    CreateRoomParams

    创建房间所需要的信息,详情请参见 重要参数

  • 返回值:无。

joinRoom

  • 声明public void joinRoom( JoinRoomParams params )

  • 说明:加入房间,加入他人创建好的房间,若该房间失效,则加入失败。加入房间的结果由回调中的 void onEnterRoom( int result ) 返回,详情请参见 回调函数

  • 参数

    参数

    类型

    说明

    params

    JoinRoomParams

    加入房间所需要的信息,详情请参见 重要参数

  • 返回值:无。

leaveRoom

  • 声明public void leaveRoom()

  • 说明:离开房间,如果是加入者(joinRoom 的方式加入),在离开房间后,可以再次加入,直到所有的与会者退出,房间没人后该房间被解散,无法再次进入。离开房间的结果由回调中的 void onLeaveRoom( int result ) 返回,详情请参见 回调函数

  • 参数:无。

  • 返回值:无。

setAutoPublishSubscribe

  • 声明public void setAutoPublishSubscribe( boolean autoPub, boolean autoSub )

  • 说明:设置是否自动发布,是否自动订阅。默认是自动发布和订阅,必须在 createRoom 和 joinRoom 之前设置。

  • 参数

    参数

    类型

    说明

    autoPub

    boolean

    是否自动发布:

    • true:表示自动发布。

    • false:表示手动发布。

    autoSub

    boolean

    是否自动订阅:

    • true:表示自动订阅。

    • false:表示手动订阅。

  • 返回值:无。

isAutoPublish

  • 声明public boolean isAutoPublish()

  • 说明:查询当前是否处于自动发布模式。

  • 参数:无。

  • 返回值:如果处于自动发布模式,返回 true,否则返回 false。

configAutoPublish

  • 声明public void configAutoPublish( PublishConfig config )

  • 说明:配置自动发布音视频格式,如果没有配置,则使用默认配置进行发布,默认发布音视频,同时视频使用 PROFILE_360_640P_15 格式。

  • 参数

    参数

    类型

    说明

    config

    PublishConfig

    发布的配置信息,详情请参见 重要参数

  • 返回值:无。

getCurrentAutoPublishConfig

  • 声明public PublishConfig getCurrentAutoPublishConfig()

  • 说明:获取当前自动发布的配置信息。

  • 参数:无。

  • 返回值:PublishConfig,发布的配置信息,详情请参见 重要参数

publish

  • 声明public void publish( PublishConfig config )

  • 说明:发布媒体流。在没有设置自动发布的情况下,可以主动发布媒体流。

  • 参数

    参数

    类型

    说明

    config

    PublishConfig

    本次发布媒体流的配置信息,详情请参见 重要参数

  • 返回值:无。

unpublish

  • 声明public void unpublish( UnpublishConfig config )

  • 说明:取消发布媒体流。用户在发布媒体流后,可以在期间取消发布,取消发布后,如果用户想要再次发布流,则需要调用 publish 接口进行重新发布。

  • 参数

    参数

    类型

    说明

    config

    UnpublishConfig

    需要取消发布的流信息,详情请参见 重要参数

  • 返回值:无。

updateVideoProfile

  • 声明public void updateVideoProfile( VideoProfile videoProfile, int maxBitrate, PublishVideoSource videoSource )

  • 说明:用户在发布媒体流中间阶段,可以动态切换发布的分辨率。

  • 参数

    参数

    类型

    说明

    videoProfile

    VideoProfile

    目标分辨率的配置值,详情请参见 重要参数

    maxBitrate

    int

    目标分辨率对应的最大码率,如果设置为 0(或者 < 0),那么则使用默认的码率,否则,使用设置的最大的码率,单位为 kbps。

    videoSource

    PublishVideoSource

    切换目标分辨率的媒体源。

  • 返回值:无。

pushCustomVideoData

  • 声明public void pushCustomVideoData(byte[] bytes, int width, int height, int rotation )

  • 说明:自定义推流图像数据输入,Android 仅支持 nv21 数据。

  • 参数

    参数

    类型

    说明

    bytes

    byte[]

    图像数据,NV21 格式。

    width

    int

    图像宽

    height

    int

    图像高

    rotation

    int

    图像旋转角度

  • 返回值:无。

isAutoSubscribe

  • 声明public boolean isAutoSubscribe()

  • 说明:查询是否处于自动订阅模式。

  • 参数:无。

  • 返回值:如果处于自动订阅模式,则返回 true,否则返回 false。

subscribe

  • 声明public void subscribe( SubscribeConfig config )

  • 说明:订阅某路媒体流。

  • 参数

    参数

    类型

    说明

    config

    SubscribeConfig

    被订阅流的配置信息,详情请参见 重要参数

  • 返回值:无。

unsubscribe

  • 声明public void unsubscribe( UnsubscribeConfig config )

  • 说明:取消订阅某路媒体流。

  • 参数

    参数

    类型

    说明

    config

    UnsubscribeConfig

    被订阅流的配置信息,详情请参见 重要参数

  • 返回值:无。

muteLocalVideo

  • 声明public void muteLocalVideo( LocalVideoInfo info, boolean muted )

  • 说明:暂停本地视频流的发布。调用该接口,可以暂停继续本地视频流的推送,适用临时暂停,后面继续的场景。

  • 参数

    参数

    类型

    说明

    info

    LocalVideoInfo

    本地视频流信息,详情请参见 重要参数

    muted

    boolean

    是否暂停本地视频流的发布:

    • true:表示暂停本地视频推送。

    • false:表示继续本地视频推送。

  • 返回值:无。

muteAllLocalVideo

  • 声明public void muteAllLocalVideo( boolean muted )

  • 说明:暂停所有本地视频流的发布。当本地存在多路流需要同时暂停推送时,可以调用该接口进行暂停继续推送操作。

  • 参数

    参数

    类型

    说明

    muted

    boolean

    是否暂停所有本地视频流的发布:

    • true:表示暂停所有本地视频流推送。

    • false:表示继续所有本地视频流推送。

  • 返回值:无。

switchCamera

  • 声明public void switchCamera()

  • 说明:切换手机上的前后摄像头。

  • 参数:无。

  • 返回值:无。

muteRemoteVideo

  • 声明public void muteRemoteVideo( RemoteVideoInfo info, boolean muted )

  • 说明:暂停远端视频流的订阅。调用该接口,可以暂停继续远端视频流的订阅,适用于临时暂停,后面继续的场景。

  • 参数

    参数

    类型

    说明

    info

    RemoteVideoInfo

    远端视频流信息,详情请参见 重要参数

    muted

    boolean

    是否暂停所有远端视频流的订阅:

    • true:表示暂停远端视频流的订阅。

    • false:表示继续远端视频流的订阅。

  • 返回值:无。

muteAllRemoteVideo

  • 声明public void muteAllRemoteVideo( boolean muted )

  • 说明:暂停所有远端视频流的播放。当本地存在多路流需要同时暂停订阅时,可以调用该接口进行操作。

  • 参数

    参数

    类型

    说明

    muted

    boolean

    是否暂停所有远端视频流的播放:

    • true:表示暂停所有的远端视频流的播放。

    • false:表示继续所有的远端视频流的播放。

  • 返回值:无。

muteLocalAudio

  • 声明public void muteLocalAudio( LocalAudioInfo info, boolean muted )

  • 说明:暂停本地音频流推送。

  • 参数

    参数

    类型

    说明

    info

    LocalAudioInfo

    本地音频流信息,详情请参见 重要参数

    在摄像头模式下,可以填入 null。

    muted

    boolean

    是否暂停本地音频流推送:

    • true:表示暂停推送音频流。

    • false:表示继续推送音频流。

  • 返回值:无。

muteAllLocalAudio

  • 声明public void muteAllLocalAudio( boolean muted )

  • 说明:暂停所有本地音频流推送。当本地存在多路音频流推送时,可以使用该接口进行暂停继续操作。

  • 参数

    参数

    类型

    说明

    muted

    boolean

    是否暂停所有本地音频流推送

    • true:表示暂停推送所有音频流。

    • false:表示继续推送所有音频流。

  • 返回值:无。

muteRemoteAudio

  • 声明public void muteRemoteAudio( RemoteAudioInfo info, boolean muted )

  • 说明:暂停远端音频流订阅。

  • 参数

    参数

    类型

    说明

    info

    RemoteAudioInfo

    远端音频流信息,详情请参见 重要参数

    muted

    boolean

    是否暂停远端音频流订阅:

    • true:表示暂停订阅音频流。

    • false:表示继续订阅音频流。

  • 返回值:无。

muteAllRemoteAudio

  • 声明public void muteAllRemoteAudio( boolean muted )

  • 说明:暂停远端所有音频流订阅。当订阅了远端多路音频流时,可以使用该接口进行暂停继续操作。

  • 参数

    参数

    类型

    说明

    muted

    boolean

    是否暂停远端所有音频流订阅:

    • true:表示暂停所有音频流订阅。

    • false:表示继续所有音频流订阅。

  • 返回值:无。

enableSpeaker

  • 声明public void enableSpeaker( boolean enable )

  • 说明:切换扬声器输出。

  • 参数

    参数

    类型

    说明

    enable

    boolean

    是否切换为扬声器输出:

    • true:切换至扬声器输出。

    • false:切换到非扬声器输出。

  • 返回值:无。

startCameraPreview

  • 声明public void startCameraPreview()

  • 说明:开始相机预览。相机预览需要 camera 权限,需提前准备硬件资源。

  • 参数:无。

  • 返回值:无。

stopCameraPreview

  • 声明public void stopCameraPreview()

  • 说明:停止本地相机预览。相机预览停止后,会触发停止发布操作。如果想要再次发布,需先启动相机预览,成功后方可进行发布操作。

  • 参数:无。

  • 返回值:无。

getRemoteUsers

  • 声明public List<ParticipantInfo> getRemoteUsers()

  • 说明:获取房间中其他与会者的信息。

  • 参数:无。

  • 返回值:返回房间中其他成员列表,ParticipantInfo 详情请参见 重要参数

setLogger

  • 声明public void setLogger( Logger logger )

  • 说明:设置自定义日志输出。

  • 参数

    参数

    类型

    说明

    logger

    Logger

    用户使用自定义日志输出的接口,需要实现该接口。

  • 返回值:无。

invite

  • 声明public String invite( InviteParams params )

  • 说明:邀请对方加入。

  • 参数

    参数

    类型

    说明

    params

    InviteParams

    邀请的配置信息,详情请参见 重要参数

  • 返回值:String,本次邀请的 ID,后续的结果通知,以此 ID 进行标识。

replyInvite

  • 声明public void replyInvite(ReplyOfInviteParam params)

  • 说明:回复对方邀请。

  • 参数

    参数

    类型

    说明

    params

    ReplyOfInviteParam

    回复邀请的配置信息,详情请参见 重要参数

  • 返回值:无。

sendMessage

  • 声明public void sendMessage( Msg4Send msg4Send )

  • 说明:发送文本信息。

  • 参数

    参数

    类型

    说明

    msg4Send

    Msg4Send

    发送文本信息的配置信息,详情请参见 重要参数

  • 返回值:无。

snapshot

  • 声明public void snapshot( FeedInfo info )

  • 说明:针对某路流进行截帧。

  • 参数

    参数

    类型

    说明

    info

    FeedInfo

    截帧流的信息,详情请参见 重要参数

  • 返回值:无。

onRequestPermissionsResult

  • 声明public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)

  • 说明:透传权限申请结果。

  • 参数:参考 Android 权限申请,直接将对应的结果透传到底层进行权限处理。如果需要处理权限申请,则业务需要将该权限申请结果通过该接口通知到 SDK 层进行对应的处理。

  • 返回值:无。

onActivityResult

  • 声明public void onActivityResult(int requestCode, int resultCode, Intent data)

  • 说明:屏幕共享权限申请 activity 的结果回调。

  • 参数:参考获取 Android activity 的结果回调,直接将结果透传到 SDK 底层进行处理。

  • 返回值:无。