国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

5分鐘快速集成UCloud實時音視頻服務URTC-Andriod端

Tecode / 2252人閱讀

摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。

通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。

集成URTC SDK之前,需要在UCLOUD官網控制臺創建URTC應用。

1. 登錄UCLOUD控制臺

在UCLOUD官網,【登錄控制臺】

使用URTC服務之前,首先需要注冊賬號 并且完成 實名認證

2.創建URTC應用

每個賬號最大支持創建5個URTC應用,需要創建更多URTC應用,請聯系客戶經理增加配額。

可以通過2種方法:控制臺、API創建URTC應用。

2.1 控制臺創建URTC應用

  • 在控制臺,【全部產品】-【視頻服務】-【實時音視頻】,找到【我的應用】

  • 點擊創建應用,輸入應用名稱,確定后保存。

  • 確定后,自動生成AppID、AppKey。

  • 綁定AppID及AppKey到您的應用中即可開始使用。

2.2 API創建URTC應用

通過 創建URTC 應用的API,也可以創建URTC應用。具體調用API的方法,請查看API文檔

3. 下載資源

4. 開發語言以及系統要求

  • 開發語言:Java
  • 系統要求:Android 4.1及以上版本的移動設備
  • Android SDK API:等級 16 或以上
  • ABI支持:armeabi-v7a、arm64-v8a

5. 開發環境

  • android studio 需要android SDK

6. 搭建開發環境

  • 下載urtc android SDK包,SDK包為aar格式,名稱為ucloudrtclib開頭加版本號加一串8位識別碼,可以參考github上的接入demo。
  • 將aar 文件拷貝到自己的lib 目錄下,然后添加到lib 中,修改要使用sdk模塊目錄下build.gradle,確保已經添加了如下依賴,如下所示:
    dependencies {
    implementation (name: ucloudrtclib_1.0.1_b52bc04c, ext: aar)
  • 如果項目混淆,請在混淆中添加一下urtc 混淆規則。
-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 中,用戶需要在進入音視頻通話房間前動態申請 CAMERARECORD\_AUDIOWRITE\_EXTERNAL\_STORAGE權限,具體可以參考Android官方文檔















7. 初始化

7.1 引擎環境初始化

主要配置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);
    }
}

7.2 繼承實現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();
                    }
    
                }
            });
        }

7.3 獲取SDK 引擎 并進行基礎配置

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)) ;
// 攝像頭輸出等級

8. 實現音視頻通話

8.1 加入房間

UCloudRtcSdkAuthInfo info = new UCloudRtcSdkAuthInfo();
        info.setAppId(mAppid);
        info.setToken(mRoomToken);
        info.setRoomId(mRoomid);
        info.setUId(mUserid);
        Log.d(TAG, " roomtoken = " + mRoomToken);
        sdkEngine.joinChannel(info); 

8.2 發布媒體流

  • 如果配置了自動發布無需調用發布視頻接口,SDK會在用戶成功加入房間后自動發布,只需要監聽事件調用渲染接口即可。
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中的處理。

  • 混合類型:音頻+屏幕捕捉、視頻+屏幕捕捉
  • 單一類型
    1) 音頻(mtype:urtc_sdk_media_type_video,hasvideo:false,hasaudio:true)
    2) 視頻(mtype:urtc_sdk_media_type_video,hasvideo:true,hasaudio:true)
    3) 屏幕捕捉(mtype:urtc_sdk_media_type_screen,hasvideo:true,hasaudio:false)
  • 渲染本地媒體流

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

8.3 訂閱媒體流

如果配置了自動訂閱無需調用訂閱視頻接口,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)

8.4 用戶發布和訂閱的權限控制

權限分為發布,訂閱,全部權限,全部權限包括了發布和訂閱。

//接口
public int setStreamRole(UCloudRtcSdkStreamRole role)
//調用
sdkEngine.setStreamRole(mRole);

8.5 離開房間

sdkEngine.leaveChannel() ;

8.6 編譯、運行,開始體驗吧!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125831.html

相關文章

  • 5分鐘快速集成UCloud實時視頻服務URTC-Windows

    摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC SDK之前,需要在UCLOUD官...

    Tecode 評論0 收藏0
  • 5分鐘快速集成UCloud實時視頻服務URTC-Linux Ubuntu

    摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。推流成功后,即可直播觀看視頻。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC S...

    Tecode 評論0 收藏0
  • 5分鐘快速集成UCloud實時視頻服務URTC-MacOS

    摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。初始化建議在初始化的同時,初始化。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC...

    Tecode 評論0 收藏0
  • 5分鐘快速集成UCloud實時視頻服務URTC-Electron

    摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。集成之前,需要在官網控制臺創建應用。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URT...

    Tecode 評論0 收藏0
  • 5分鐘快速集成UCloud實時視頻服務URTC-iOS

    摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成,可以快速實現實時音視頻通話。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成UR...

    Tecode 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<