摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。
通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。
集成URTC SDK之前,需要在UCLOUD官網控制臺創建URTC應用。
在UCLOUD官網,【登錄控制臺】。
使用URTC服務之前,首先需要注冊賬號 并且完成 實名認證 。
每個賬號最大支持創建5個URTC應用,需要創建更多URTC應用,請聯系客戶經理增加配額。
可以通過2種方法:控制臺、API創建URTC應用。
通過 創建URTC 應用的API,也可以創建URTC應用。具體調用API的方法,請查看API文檔。
ucloudrtclib
開頭加版本號加一串8位識別碼,可以參考github上的接入demo。lib
目錄下,然后添加到lib
中,修改要使用sdk模塊目錄下build.gradle
,確保已經添加了如下依賴,如下所示: dependencies {
implementation (name: ucloudrtclib_1.0.1_b52bc04c, ext: aar)
-keep class com.ucloudrtclib.sdkengine.**{*;}
-keep class com.ucloudrtclib.sdkengine.define.*{*;}
-keep enum com.ucloudrtclib.sdkengine.define.*{*;}
-keepclassmembers class com.ucloudrtclib.sdkengine.UCloudRtcSdkEnv {
public static ;
}
-keepclassmembers interface com.ucloudrtclib.sdkengine.UCloudRtcSdkEngine {
public ;
public static ;
}
-keep class org.webrtc.** {
*;
}
在 Android 6.0 (API 23)開始,用戶需要在應用運行時授予權限,而不是在應用安裝時授予,并分為正常權限和危險權限兩種類型。
在實時音視頻SDK 中,用戶需要在進入音視頻通話房間前動態申請 CAMERA
、RECORD\_AUDIO
、WRITE\_EXTERNAL\_STORAGE
權限,具體可以參考Android官方文檔。
主要配置android context sdkmode
以及AppID
,測試用的SEC\_KEY
,日志等級。
public class UCloudRtcApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate: " + this);
if (TextUtils.equals(getCurrentProcessName(this), getPackageName())) {
init();//判斷成功后才執行初始化代碼
}
}
private void init(){
sContext = this;
//初始化sdk環境
UCloudRtcSdkEnv.initEnv(getApplicationContext());
//打印日志到logcat
UCloudRtcSdkEnv.setWriteToLogCat(true);
//開啟log上報
UCloudRtcSdkEnv.setLogReport(true);
//設置log級別
UCloudRtcSdkEnv.setLogLevel(UCloudRtcSdkLogLevel.UCLOUD_RTC_SDK_LogLevelInfo);
//設置sdk模式(測試模式)
UCloudRtcSdkEnv.setSdkMode(UCloudRtcSdkMode.UCLOUD_RTC_SDK_MODE_TRIVAL);
//重連次數
UCloudRtcSdkEnv.setReConnectTimes(60);
//設置測試模式的用戶私有秘鑰
UCloudRtcSdkEnv.setTokenSeckey(CommonUtils.SEC_KEY);
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
windowManager.getDefaultDisplay().getMetrics(outMetrics);
CommonUtils.mItemWidth = (outMetrics.widthPixels - UiHelper.dipToPx(this, 15)) / 3;
CommonUtils.mItemHeight = CommonUtils.mItemWidth;
//初始化bugly日志
CrashReport.initCrashReport(getApplicationContext(), "9a51ae062a", true);
}
}
UCloudRtcSdkEventListener
實現事件處理UCloudRtcSdkEventListener eventListener = new UCloudRtcSdkEventListener() {
@Override
public void onServerDisconnect() {
runOnUiThread(new Runnable() {
@Override
public void run() {
ToastUtils.shortShow(RoomActivity.this, " 服務器已斷開");
stopTimeShow();
onMediaServerDisconnect() ;
}
});
}
@Override
public void onJoinRoomResult(int code, String msg, String roomid) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (code == 0) {
ToastUtils.shortShow(RoomActivity.this, " 加入房間成功");
startTimeShow();
}else {
ToastUtils.shortShow(RoomActivity.this, " 加入房間失敗 "+
code +" errmsg "+ msg);
Intent intent = new Intent(RoomActivity.this, ConnectActivity.class);
onMediaServerDisconnect() ;
startActivity(intent) ;
finish();
}
}
});
}
sdkEngine.setAudioOnlyMode(true) ;
// 設置純音頻模式
sdkEngine.configLocalCameraPublish(false) ;
// 設置攝像頭是否發布
sdkEngine.configLocalAudioPublish(true) ;
// 設置音頻是否發布,用于讓sdk判斷自動發布的媒體類型
sdkEngine.configLocalScreenPublish(false) ;
// 設置桌面是否發布,作用同上
sdkEngine.setClassType(UCloudRtcSdkRoomType.UCLOUD_RTC_SDK_ROOM_SMALL) ;
// 設置房間類型,有兩種 實時會議(小班課) 和互動直播(大班課)類型可選 ,默認為實時會議(小班課)
sdkEngine.setStreamRole(URTCSdkStreamRole.URTC_SDK_STREAM_ROLE_BOTH);
// 如果是互動直播(大班課)模式,需要設置用戶權限:僅上行發布、僅下行訂閱、雙向發布訂閱權限;實時會議(小班課)會忽略這個配置
sdkEngine.setAutoPublish(true) ;
// 是否自動發布
sdkEngine.setAutoSubscribe(true) ;
// 是否自動訂閱
sdkEngine.setVideoProfile(UCloudRtcSdkVideoProfile.matchValue(mVideoProfile)) ;
// 攝像頭輸出等級
UCloudRtcSdkAuthInfo info = new UCloudRtcSdkAuthInfo();
info.setAppId(mAppid);
info.setToken(mRoomToken);
info.setRoomId(mRoomid);
info.setUId(mUserid);
Log.d(TAG, " roomtoken = " + mRoomToken);
sdkEngine.joinChannel(info);
sdkEngine.setAutoPublish(mPublishMode == CommonUtils.AUTO_MODE ? true : false);
sdkEngine
引擎的publish
接口 配置手動/自動發布。sdkEngine.publish(UCloudRtcSdkMediaType mtype, boolean hasvideo, boolean hasaudio)
//回調事件
public void onLocalPublish(int code, String msg, UCloudRtcSdkStreamInfo info
現在的類型包括兩大類,需要傳入publish
接口的mtype
,hasvideo
,hasaudio
參數各不相同,混合類型是單一類型的組合,具體代碼可參閱urtcdemo的RoomActvity
中的處理。
在onLocalPublish
回調成功后,在函數中可以調用視頻渲染。
localrenderview.setBackgroundColor(Color.TRANSPARENT);
sdkEngine.startPreview(info.getmMediatype(), localrenderview);
//不想渲染時可以調用停止渲染接口
sdkEngine.stopPreview(UCloudRtcSdkMediaType mediatype
sdkEngine.unPublish(UCloudRtcSdkMediaType mtype)
//回調事件
public void onLocalUnPublish(int code, String msg, UCloudRtcSdkStreamInfo info
如果配置了自動訂閱無需調用訂閱視頻接口,SDK會在用戶成功加入房間后查看房間已有的可以訂閱的流并進行逐一訂閱,當有新用戶加入房間時也會自動訂閱他推的流。
如果配置了手動訂閱需要調用sdkEngine引擎的subscribe接口。
sdkEngine.setAutoSubscribe(mScribeMode == CommonUtils.AUTO_MODE ? true : false);
sdkEngine.subscribe(UCloudRtcSdkStreamInfo info)
//回調事件
public void onSubscribeResult(int code, String msg, UCloudRtcSdkStreamInfo info
在onSubscribeResult回調成功后,再函數中可以調用視頻渲染。
sdkEngine. startRemoteView(UCloudRtcSdkStreamInfo info, UCloudRtcSdkSurfaceVideoView renderview)
//不想渲染時可以調用定制渲染接口
sdkEngine.stopPreview(UCloudRtcSdkMediaType mediatype
sdkEngine. subscribe(UCloudRtcSdkStreamInfo info)
//回調事件
public void onUnSubscribeResult(int code, String msg, UCloudRtcSdkStreamInfo info)
權限分為發布,訂閱,全部權限,全部權限包括了發布和訂閱。
//接口
public int setStreamRole(UCloudRtcSdkStreamRole role)
//調用
sdkEngine.setStreamRole(mRole);
sdkEngine.leaveChannel() ;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125831.html
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC SDK之前,需要在UCLOUD官...
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。推流成功后,即可直播觀看視頻。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC S...
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。初始化建議在初始化的同時,初始化。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC...
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。集成之前,需要在官網控制臺創建應用。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URT...
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成,可以快速實現實時音視頻通話。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成UR...
閱讀 3514·2023-04-25 20:09
閱讀 3720·2022-06-28 19:00
閱讀 3035·2022-06-28 19:00
閱讀 3058·2022-06-28 19:00
閱讀 3131·2022-06-28 19:00
閱讀 2859·2022-06-28 19:00
閱讀 3014·2022-06-28 19:00
閱讀 2610·2022-06-28 19:00