本文介紹音視頻通話 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 底層進行處理。
返回值:無。