亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

Tecode / 2379人閱讀

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

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

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

1. 登錄UCLOUD控制臺

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

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

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ù)】-【實時音視頻】,找到【我的應(yīng)用】

  • 點擊創(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文檔。
通過集成SDK,可以快速實現(xiàn)實時音視頻通話。

3. 下載資源

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

  • 支持語言:objective-c、swift;
  • Apple設(shè)備:iPhone最低支持iPhone5;
  • 系統(tǒng)版本:最低支持iOS 9.0;
  • CPU架構(gòu):支持真機架構(gòu)arm64,不支持模擬器i386、 x86架構(gòu);
  • 其他:不支持bitcode。

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

  • Xcode 9.0及以上版本;
  • Apple開發(fā)證書或個人賬號;

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

6.1 得到動態(tài)庫

下載SDK,得到的UCloudRtcSdk_ios.framework為動態(tài)庫;

6.2 創(chuàng)建新的工程

使用XCode創(chuàng)建一個新的工程UCloudRtcSdk-ios-demo;

創(chuàng)建新的工程.png

6.3 加入動態(tài)庫帶工程中

將已下載的動態(tài)庫UCloudRtcSdk_ios.framework加入到UCloudRtcSdk-ios-demo工程中Embedded Binaries

加入動態(tài)庫到工程中

6.4 打開Xcode

打開Xcode,選擇:項目TARGET ->General->Deployment Target,設(shè)置8.0或以上版本;

設(shè)置版本號.png

6.5 使用動態(tài)庫不需要添加其他庫依賴

6.6 關(guān)閉Bitcode(目前SDK版本不支持Bitcode)

關(guān)閉bitcode.png

6.7 編輯info.plist,申請攝像頭、麥克風權(quán)限

Privacy - Camera Usage Description
Privacy - Microphone Usage Description

編輯info.plist.png

6.8 打開后臺音頻權(quán)限

為保障APP退入手機后臺之后,通話可以保持不中斷,建議開啟后臺音頻權(quán)限,SDK默認進入后臺之后繼續(xù)推送音頻流。

打開后臺音頻權(quán)限.png

6.9 集成成功

按照上述步驟完成UCloudRtcSdk-ios-demo的前期SDK集成準備之后,請使用Xcode連接iPhone真機,在真機調(diào)試環(huán)境下,執(zhí)行編譯Commond + B,提示Build Success,表示SDK集成成功。

7. 初始化

建議在初始化 App 的同時,初始化 SDK。

7.1 導入 SDK 頭文件

 
import UCloudRtcSdk_ios

7.2 設(shè)置 userId 和 roomId,獲取AppID;

UCloudRtcEngine *engine = [[UCloudRtcEngine alloc] initWithUserId:userId  appId:appId roomId:roomId appKey:appKey token:token]];
UCloudRtcEngine *engine = UCloudRtcEngine.init(userId:userId, appId: appId, roomId:roomId , appKey: appKey, token:token)

務(wù)必要設(shè)置代理對象,并實現(xiàn)代理回調(diào)方法,設(shè)置代理對象失敗,會導致 App 收不到相關(guān)回調(diào)。

engine.delegate = self;
self.engine?.delegate = self

7.3 配置參數(shù)

使用之前需要對SDK進行相關(guān)設(shè)置,如果不設(shè)置,系統(tǒng)將會采用默認值。
初始化完成后,即可調(diào)用 SDK 相關(guān)接口,實現(xiàn)對應(yīng)功能。

    self.engine.isAutoPublish = YES;//加入房間后將自動發(fā)布本地音視頻 默認為YES
    self.engine.isAutoSubscribe = YES;//加入房間后將自動訂閱遠端音視頻 默認為YES
    self.engine.isOnlyAudio = NO;//將啟用純音頻模式 默認為NO
    self.engine.isDebug = NO;//是否開啟日志
    self.engine.videoProfile = UCloudRtcEngine_VideoProfile_360P_1;//設(shè)置視頻分辨率
    self.engine.streamProfile = UCloudRtcEngine_StreamProfileAll;//設(shè)置流權(quán)限
    self.engine?.isAutoPublish = ture;//加入房間后將自動發(fā)布本地音視頻 默認為ture
    self.engine?.isAutoSubscribe = ture;//加入房間后將自動訂閱遠端音視頻 默認為ture
    self.engine?.isOnlyAudio = false;//將啟用純音頻模式 默認為false
    self.engine?.isDebug = false;//是否開啟日志
    self.engine?.videoProfile = ._VideoProfile_360P_1;//設(shè)置視頻分辨率
    self.engine?.streamProfile = .streamProfileAll;//設(shè)置流權(quán)限

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

8.1 加入房間

[self.engine joinRoomWithcompletionHandler:^(NSData *data, NSUrlResponse *response, NSError error) {
    }];
self.engine?.joinRoomWithcompletionHandler({(data, response, error) -> Void in})

8.2 發(fā)布本地流

1)自動發(fā)布模式下,joinRoom成功后,即可發(fā)布本地流,無需再次調(diào)用publish接口;
2)手動發(fā)布模式下,joinRoom成功后,可通過下述接口發(fā)布本地流;

[self.engine publish];
self.engine?.publish()

3)發(fā)布過程中可以監(jiān)聽以下事件獲取發(fā)布狀態(tài),根據(jù)狀態(tài)調(diào)用渲染或其他接口即可。

        - (void)uCloudRtcEngine:(UCloudRtcEngine *)manager didChangePublishState:(UCloudRtcEnginePublishState)publishState {
            switch (publishState) {
                        case UCloudRtcEnginePublishStateUnPublish:
                            self.isConnected = NO;
                        break;
                        case UCloudRtcEnginePublishStatePublishing: {
                            [self.bottomButton setTitle:@"正在發(fā)布..." forState:UIControlStateNormal];
                        }
                        break;
                        case UCloudRtcEnginePublishStatePublishSucceed:{
                            self.isConnected = YES;
                            [self.view makeToast:@"發(fā)布成功" duration:1.5 position:CSToastPositionCenter];
                            [self.bottomButton setTitle:@"發(fā)布成功" forState:UIControlStateNormal];
                        }
                        break;
                        case UCloudRtcEnginePublishStateRepublishing: {
                            [self.bottomButton setTitle:@"正在重新發(fā)布..." forState:UIControlStateNormal];
                        }
                        break;
                        case UCloudRtcEnginePublishStatePublishFailed: {
                        self.isConnected = NO;
                            [self.bottomButton setTitle:@"開始發(fā)布" forState:UIControlStateNormal];
                        }
                        break;
                        case UCloudRtcEnginePublishStatePublishStoped: {
                        self.isConnected = NO;
                            [self.view makeToast:@"發(fā)布已停止" duration:1.5 position:CSToastPositionCenter];
                            [self.bottomButton setTitle:@"開始發(fā)布" forState:UIControlStateNormal];
                        }
                        break;
                        default:
                        break;
                    }                               
                }
        func uCloudRtcEngine(_ manager: UCloudRtcEngine, didChange publishState: UCloudRtcEnginePublishState) {
            switch publishState {
                case .unPublish:
                    self.isConnected = false
                case .publishing:
                    CBToast.showToastAction(message: "正在發(fā)布...")
                case .publishSucceed:
                    CBToast.showToastAction(message: "發(fā)布成功")
                    self.isConnected = true;
                    self.bottomButton?.setTitle("發(fā)布成功", for: .normal)
                case .republishing:
                    self.bottomButton?.setTitle("正在重新發(fā)布...", for: .normal)
                case .publishFailed:
                    self.isConnected = false;
                    CBToast.showToastAction(message: "開始發(fā)布")
                case .publishStoped:
                    self.isConnected = false;
                    CBToast.showToastAction(message: "發(fā)布已停止")
                    self.bottomButton?.setTitle("開始發(fā)布", for: .normal)
                default:
                break
            }
        }

8.3 取消發(fā)布本地流

[self.engine unPublish];
self.engine?.unPublish()

8.4 訂閱遠端流

1)自動訂閱模式下,joinRoom成功后,即可訂閱遠程流,無需再次調(diào)用subscribeMethod接口;
2)手動訂閱模式下,joinRoom成功后,可通過下述接口訂閱遠程流;

[self.engine subscribeMethod:remoteStream];
self.engine?.subscribeMethod(remoteStream)

3)訂閱成功,在回調(diào)事件中調(diào)用渲染接口即可。

        -(void)uCloudRtcEngine:(UCloudRtcEngine *)channel didSubscribe:(UCloudRtcStream *)stream{
            [self reloadVideos];
        }
        func uCloudRtcEngine(_ channel: UCloudRtcEngine, didSubscribe stream: UCloudRtcStream) {
            self.reloadVideos()
        }
}

8.5 取消訂閱遠端流

[self.engine unSubscribeMethod:remoteStream];
self.engine?.unSubscribeMethod(remoteStream)

8.6 離開房間

[self.engine leaveRoom];   
    
self.engine?.leaveRoom()

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    Tecode 評論0 收藏0

發(fā)表評論

0條評論

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