Android 實現視訊聊天1對1功能
阿新 • • 發佈:2018-12-09
Android實現視訊聊天很難? 不不不,其實很簡單,使用聲網第三方sdk簡單上手
先看效果,我這裡用的是模擬器測試
大家可以看到兩個模擬器介面都會顯示對應內容。右上角是自己,左邊是對方。
專案結構
下面開始準備工作
註冊之後建立運用,拿到AppId.
下載一對一SDK並解壓將檔案放入對應位置
將AppId新增到strings.xml中
<string name="agora_app_id">您的AppId</string>
新增對應許可權
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.BLUETOOTH" />
下面開始是我們Activity
//建立RtcEngine 物件 private void initializeAgoraEngine() { try { mRtcEngine = RtcEngine.create(getBaseContext(), getString(R.string.agora_app_id), mRtcEventHandler); } catch (Exception e) { Log.e(LOG_TAG, Log.getStackTraceString(e)); throw new RuntimeException("建立RtcEngine物件失敗" + Log.getStackTraceString(e)); } }
//設定本地視訊屬性
private void setupVideoProfile() {
//開啟視訊模式
mRtcEngine.enableVideo();
//設定視訊解析度
mRtcEngine.setVideoProfile(Constants.VIDEO_PROFILE_360P, false);
}
//加入頻道 private void joinChannel() { mRtcEngine.joinChannel(null, "demoChannel1", "Extra Optional Data", 0); // if you do not specify the uid, we will generate the uid for you }
//設定遠端視訊渲染器
private void setupRemoteVideo(int uid) {
//獲取控制元件
FrameLayout container = (FrameLayout) findViewById(R.id.remote_video_view_container);
if (container.getChildCount() >= 1) {
return;
}
//建立視訊渲染檢視, 設定遠端視訊檢視
SurfaceView surfaceView = RtcEngine.CreateRendererView(getBaseContext());
container.addView(surfaceView);
mRtcEngine.setupRemoteVideo(new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_ADAPTIVE, uid));
surfaceView.setTag(uid); // for mark purpose
}
//離開頻道
private void leaveChannel() {
mRtcEngine.leaveChannel();
}
大致上就是這些重要方法。非常簡單,希望對小夥伴們有幫助。