成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

5分鐘快速集成UCloud實(shí)時(shí)音視頻服務(wù)URTC-Andriod端

Tecode / 2268人閱讀

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

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

集成URTC SDK之前,需要在UCLOUD官網(wǎng)控制臺創(chuàng)建URTC應(yīng)用。

1. 登錄UCLOUD控制臺

在UCLOUD官網(wǎng),【登錄控制臺】

使用URTC服務(wù)之前,首先需要注冊賬號 并且完成 實(shí)名認(rèn)證

2.創(chuàng)建URTC應(yīng)用

每個賬號最大支持創(chuàng)建5個URTC應(yīng)用,需要創(chuàng)建更多URTC應(yīng)用,請聯(lián)系客戶經(jīng)理增加配額。

可以通過2種方法:控制臺、API創(chuàng)建URTC應(yīng)用。

2.1 控制臺創(chuàng)建URTC應(yīng)用

  • 在控制臺,【全部產(chǎn)品】-【視頻服務(wù)】-【實(shí)時(shí)音視頻】,找到【我的應(yīng)用】

  • 點(diǎn)擊創(chuàng)建應(yīng)用,輸入應(yīng)用名稱,確定后保存。

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

  • 綁定AppID及AppKey到您的應(yīng)用中即可開始使用。

2.2 API創(chuàng)建URTC應(yīng)用

通過 創(chuàng)建URTC 應(yīng)用的API,也可以創(chuàng)建URTC應(yīng)用。具體調(diào)用API的方法,請查看API文檔

3. 下載資源

4. 開發(fā)語言以及系統(tǒng)要求

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

5. 開發(fā)環(huán)境

  • android studio 需要android SDK

6. 搭建開發(fā)環(huán)境

  • 下載urtc android SDK包,SDK包為aar格式,名稱為ucloudrtclib開頭加版本號加一串8位識別碼,可以參考github上的接入demo。
  • 將aar 文件拷貝到自己的lib 目錄下,然后添加到lib 中,修改要使用sdk模塊目錄下build.gradle,確保已經(jīng)添加了如下依賴,如下所示:
    dependencies {
    implementation (name: ucloudrtclib_1.0.1_b52bc04c, ext: aar)
  • 如果項(xiàng)目混淆,請?jiān)诨煜刑砑右幌聈rtc 混淆規(guī)則。
-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.** {
    *;
}

  • 目錄結(jié)構(gòu)

  • 添加權(quán)限

在 Android 6.0 (API 23)開始,用戶需要在應(yīng)用運(yùn)行時(shí)授予權(quán)限,而不是在應(yīng)用安裝時(shí)授予,并分為正常權(quán)限和危險(xiǎn)權(quán)限兩種類型。
在實(shí)時(shí)音視頻SDK 中,用戶需要在進(jìn)入音視頻通話房間前動態(tài)申請 CAMERA、RECORD\_AUDIO、WRITE\_EXTERNAL\_STORAGE權(quán)限,具體可以參考Android官方文檔















7. 初始化

7.1 引擎環(huán)境初始化

主要配置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();//判斷成功后才執(zhí)行初始化代碼
        }
    }

    private void init(){
        sContext = this;
        //初始化sdk環(huán)境
        UCloudRtcSdkEnv.initEnv(getApplicationContext());
        //打印日志到logcat
        UCloudRtcSdkEnv.setWriteToLogCat(true);
        //開啟log上報(bào)
        UCloudRtcSdkEnv.setLogReport(true);
        //設(shè)置log級別
        UCloudRtcSdkEnv.setLogLevel(UCloudRtcSdkLogLevel.UCLOUD_RTC_SDK_LogLevelInfo);
        //設(shè)置sdk模式(測試模式)
        UCloudRtcSdkEnv.setSdkMode(UCloudRtcSdkMode.UCLOUD_RTC_SDK_MODE_TRIVAL);
        //重連次數(shù)
        UCloudRtcSdkEnv.setReConnectTimes(60);
        //設(shè)置測試模式的用戶私有秘鑰
        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 繼承實(shí)現(xiàn)UCloudRtcSdkEventListener 實(shí)現(xiàn)事件處理

UCloudRtcSdkEventListener eventListener = new UCloudRtcSdkEventListener() {
        @Override
        public void onServerDisconnect() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    ToastUtils.shortShow(RoomActivity.this, " 服務(wù)器已斷開");
                    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 引擎 并進(jìn)行基礎(chǔ)配置

sdkEngine.setAudioOnlyMode(true) ; 
// 設(shè)置純音頻模式
sdkEngine.configLocalCameraPublish(false) ; 
// 設(shè)置攝像頭是否發(fā)布
sdkEngine.configLocalAudioPublish(true) ; 
// 設(shè)置音頻是否發(fā)布,用于讓sdk判斷自動發(fā)布的媒體類型
sdkEngine.configLocalScreenPublish(false) ; 
// 設(shè)置桌面是否發(fā)布,作用同上
sdkEngine.setClassType(UCloudRtcSdkRoomType.UCLOUD_RTC_SDK_ROOM_SMALL) ; 
// 設(shè)置房間類型,有兩種 實(shí)時(shí)會議(小班課) 和互動直播(大班課)類型可選 ,默認(rèn)為實(shí)時(shí)會議(小班課)
sdkEngine.setStreamRole(URTCSdkStreamRole.URTC_SDK_STREAM_ROLE_BOTH);
// 如果是互動直播(大班課)模式,需要設(shè)置用戶權(quán)限:僅上行發(fā)布、僅下行訂閱、雙向發(fā)布訂閱權(quán)限;實(shí)時(shí)會議(小班課)會忽略這個配置
sdkEngine.setAutoPublish(true) ; 
// 是否自動發(fā)布
sdkEngine.setAutoSubscribe(true) ;
// 是否自動訂閱
sdkEngine.setVideoProfile(UCloudRtcSdkVideoProfile.matchValue(mVideoProfile)) ;
// 攝像頭輸出等級

8. 實(shí)現(xiàn)音視頻通話

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 發(fā)布媒體流

  • 如果配置了自動發(fā)布無需調(diào)用發(fā)布視頻接口,SDK會在用戶成功加入房間后自動發(fā)布,只需要監(jiān)聽事件調(diào)用渲染接口即可。
sdkEngine.setAutoPublish(mPublishMode == CommonUtils.AUTO_MODE ? true : false);
  • 如果配置了手動發(fā)布需要調(diào)用sdkEngine引擎的publish接口 配置手動/自動發(fā)布。
sdkEngine.publish(UCloudRtcSdkMediaType mtype, boolean hasvideo, boolean hasaudio)
//回調(diào)事件
public void onLocalPublish(int code, String msg, UCloudRtcSdkStreamInfo info
  • 媒體發(fā)布類型

現(xiàn)在的類型包括兩大類,需要傳入publish接口的mtype,hasvideo,hasaudio參數(shù)各不相同,混合類型是單一類型的組合,具體代碼可參閱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 回調(diào)成功后,在函數(shù)中可以調(diào)用視頻渲染。

localrenderview.setBackgroundColor(Color.TRANSPARENT);
sdkEngine.startPreview(info.getmMediatype(), localrenderview);
//不想渲染時(shí)可以調(diào)用停止渲染接口
sdkEngine.stopPreview(UCloudRtcSdkMediaType mediatype
  • 取消發(fā)布媒體流
sdkEngine.unPublish(UCloudRtcSdkMediaType mtype)
//回調(diào)事件
public void onLocalUnPublish(int code, String msg, UCloudRtcSdkStreamInfo info

8.3 訂閱媒體流

如果配置了自動訂閱無需調(diào)用訂閱視頻接口,SDK會在用戶成功加入房間后查看房間已有的可以訂閱的流并進(jìn)行逐一訂閱,當(dāng)有新用戶加入房間時(shí)也會自動訂閱他推的流。
如果配置了手動訂閱需要調(diào)用sdkEngine引擎的subscribe接口。

sdkEngine.setAutoSubscribe(mScribeMode == CommonUtils.AUTO_MODE ? true : false);
  • 訂閱媒體流
sdkEngine.subscribe(UCloudRtcSdkStreamInfo info)
//回調(diào)事件
public void onSubscribeResult(int code, String msg, UCloudRtcSdkStreamInfo info
  • 渲染訂閱的媒體流

在onSubscribeResult回調(diào)成功后,再函數(shù)中可以調(diào)用視頻渲染。

sdkEngine. startRemoteView(UCloudRtcSdkStreamInfo info, UCloudRtcSdkSurfaceVideoView renderview)
//不想渲染時(shí)可以調(diào)用定制渲染接口
sdkEngine.stopPreview(UCloudRtcSdkMediaType mediatype
  • 取消訂閱媒體流
sdkEngine. subscribe(UCloudRtcSdkStreamInfo info) 
//回調(diào)事件
public void onUnSubscribeResult(int code, String msg, UCloudRtcSdkStreamInfo info)

8.4 用戶發(fā)布和訂閱的權(quán)限控制

權(quán)限分為發(fā)布,訂閱,全部權(quán)限,全部權(quán)限包括了發(fā)布和訂閱。

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

8.5 離開房間

sdkEngine.leaveChannel() ;

8.6 編譯、運(yùn)行,開始體驗(yàn)吧!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/125831.html

相關(guān)文章

  • 5分鐘快速集成UCloud實(shí)時(shí)視頻服務(wù)URTC-Windows

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

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

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

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

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

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

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

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

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

    Tecode 評論0 收藏0

發(fā)表評論

0條評論

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