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

資訊專欄INFORMATION COLUMN

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

Tecode / 2249人閱讀

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

通過集成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文檔
通過集成SDK,可以快速實現實時音視頻通話。

3. 下載資源

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

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

5. 開發環境

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

6. 搭建開發環境

6.1 得到動態庫

下載SDK,得到的UCloudRtcSdk_ios.framework為動態庫;

6.2 創建新的工程

使用XCode創建一個新的工程UCloudRtcSdk-ios-demo;

創建新的工程.png

6.3 加入動態庫帶工程中

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

加入動態庫到工程中

6.4 打開Xcode

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

設置版本號.png

6.5 使用動態庫不需要添加其他庫依賴

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

關閉bitcode.png

6.7 編輯info.plist,申請攝像頭、麥克風權限

Privacy - Camera Usage Description
Privacy - Microphone Usage Description

編輯info.plist.png

6.8 打開后臺音頻權限

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

打開后臺音頻權限.png

6.9 集成成功

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

7. 初始化

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

7.1 導入 SDK 頭文件

 
import UCloudRtcSdk_ios

7.2 設置 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)

務必要設置代理對象,并實現代理回調方法,設置代理對象失敗,會導致 App 收不到相關回調。

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

7.3 配置參數

使用之前需要對SDK進行相關設置,如果不設置,系統將會采用默認值。
初始化完成后,即可調用 SDK 相關接口,實現對應功能。

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

8. 實現音視頻通話

8.1 加入房間

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

8.2 發布本地流

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

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

3)發布過程中可以監聽以下事件獲取發布狀態,根據狀態調用渲染或其他接口即可。

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

8.3 取消發布本地流

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

8.4 訂閱遠端流

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

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

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

        -(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 編譯、運行,開始體驗吧!

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125832.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-Andriod

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

    Tecode 評論0 收藏0

發表評論

0條評論

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