本文介绍音视频通话 API 在接入 Android 时涉及的公共接口。
接口类型 | API | 说明 |
基础接口 | 创建 AlipayRtcEngine 实例(同一时间只会存在一个实例)。 | |
设置回调事件的监听和对应的 Handler。 | ||
设置 IM 文本信息交互的监听。 | ||
设置邀请模式下邀请信息的监听。 | ||
设置自定义推流模式下的本地预览监听。 | ||
销毁引擎。 | ||
非支付宝 App 用于通知压后台回前台事件,用于压后台关闭摄像头、悬浮框权限监听、悬浮框弹出和隐藏。
| ||
房间相关接口 | 创建房间。 | |
加入房间。 | ||
离开房间。 | ||
设置是否自动发布,是否自动订阅。 | ||
发布相关接口 | 查询当前是否为自动发布模式。 | |
设置是否允许发布视频流。 | ||
获取当前自动发布的配置。 | ||
手动发布设置的音频流和视频流。 | ||
取消发布流。 | ||
切换发布分辨率。 | ||
自定义推流,推送自定义图像数据。 | ||
订阅相关接口 | 查询当前是否为自动订阅模式。 | |
手动订阅视频和音频流。 | ||
取消订阅流。 | ||
视频相关接口 | 设置是否暂停发布本地视频流。 | |
设置是否暂停发布本地所有的视频流。 | ||
切换前后摄像头。 | ||
设置是否暂停播放远端视频流。 | ||
设置是否暂停播放所有的远端视频流。 | ||
音频相关接口 | 设置是否暂停发布本地音频。 | |
设置是否暂停本地所有音频流。 | ||
设置是否暂停播放远端音频流。 | ||
设置是否暂停播放所有远端音频流。 | ||
设置是否切换扬声器输出。 | ||
预览接口 | 开始本地相机预览。 | |
停止本地相机预览。 | ||
查询远端用户接口 | 获取远端用户信息。 | |
其他接口 | 设置自定义日志输出。 | |
邀请对方加入。 | ||
回复对方邀请。 | ||
发送文本消息。 | ||
针对某路视频流进行截屏。 | ||
如果需要处理权限申请,则业务需要将该权限申请结果通过该接口通知到 SDK 层进行对应的处理。 | ||
屏幕共享权限申请回调。 |
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 底层进行处理。
返回值:无。