1) 設置必要音視頻參數,參考代碼如下:
~~~
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 1);
~~~
2) 攝像頭硬件初始化
該操作需要在顯示視頻 activity 的 oncreate 中執行(注意:必須是 OnCreate 方法中初始化 Camera 設備),參考代碼如下:
~~~
// 啟動AnyChat傳感器監聽
anychat.mSensorHelper.InitSensor(this);
// 初始化Camera上下文句柄
AnyChatCoreSDK.mCameraHelper.SetContext(this);
//設置SURFACE_TYPE_PUSH_BUFFERS模式
mSurfaceLocal.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFER
S);
// 打開本地視頻預覽,開始采集本地視頻數據
mSurfaceLocal.getHolder().addCallback(AnyChatCoreSDK.mCameraHelper);
~~~
3) 打開本地音視頻(需要進入房間)
調用UserCameraControl打開視頻,調用 UserSpeakControl打開音頻。打開本地音視頻數據需要在進入房間成功之后才有效,即在收到 OnAnyChatEnterRoom回調。參考代碼如下:
~~~
//打開本地視頻, 第一個參數用-1表示本地,也可以用本地的真實userid
anychat.UserCameraControl(-1, 1);
//打開本地音頻
anychat.UserSpeakControl(-1, 1);
~~~
4) 關閉本地音視頻
打開本地音視頻后,可以在音視頻交互的過程中選擇關閉本地音視頻。同時,還可以在關閉之后重新打開本地音視頻。參考代碼如下:
~~~
//關閉本地視頻,第一個參數用-1表示本地,也可以用本地的真實userid
anychat.UserCameraControl(-1, 0);
//關閉本地音頻
anychat.UserSpeakControl(-1, 0);
~~~
5) 請求遠程音視頻
請求通話目標用戶的音視頻數據,調用 UserCameraControl 打開視頻,調用UserSpeakControl 打開音頻,bindVideo、SetVideoUser 綁定顯示視頻的 surfaceview (mSurfaceRemote 為指定顯示遠程視頻的
~~~
// mRemoteUserid為通話目標對象的userId;
int index = anychat.mVideoHelper.bindVideo(mSurfaceRemote.getHolder());
anychat.mVideoHelper.SetVideoUser(index,mRemoteUserid);
anychat.UserCameraControl(mRemoteUserid, 1);
anychat.UserSpeakControl(mRemoteUserid, 1);
~~~
在觸發 OnAnyChatOnlineUser 或者 OnAnyChatEnterRoom 并判斷通話目標對象已經進入當前房間之后,該操作才有效
6) 關閉遠程音視頻
請求遠程音視頻后,可以在音視頻交互的過程中選擇關閉遠程音視頻。同時,還可以在關閉之后重新請求遠程音視頻;在音視頻交互結束之后需要調用該操作,釋放遠程音視頻資源,參考代碼如下:
~~~
//關閉遠程視頻, mRemoteUserid為通話目標的userid
anychat.UserCameraControl(mRemoteUserid, 0);
//關閉遠程音頻,
anychat.UserSpeakControl(mRemoteUserid, 0);
~~~
7) 離開房間
釋放當前房間內的音視頻資源。參考代碼如下:
~~~
//離開指定房間,-1表示離開當前所在房間
anychat.LeaveRoom(roomid);
~~~
在音視頻交互結束后,可調用該操作。離開當前房間之后,可再次選擇進入指定房間。
8) 退出登錄
斷開與 AnyChat 通訊服務器連接。參考代碼如下:
~~~
//斷開與服務器的連接
anychat.Logout();
~~~
在需要斷開跟AnyChat服務器通訊連接的時候,可調用該操作。退出之后,可以再次調用連接、登錄服務器。
9) 釋放資源
釋放整個 SDK 資源。參考代碼如下:
~~~
//釋放資源
anychat.Release();
~~~
建議在退出整個應用程序的時候調用該操作。釋放 SDK 之后,需要重新初始化 SDK 之后才能進行連接、登錄、進入房間等操作。