摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成,可以快速實現實時音視頻通話。
通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。
集成URTC SDK之前,需要在UCLOUD官網控制臺創建URTC應用。
在UCLOUD官網,【登錄控制臺】。
使用URTC服務之前,首先需要注冊賬號 并且完成 實名認證 。
每個賬號最大支持創建5個URTC應用,需要創建更多URTC應用,請聯系客戶經理增加配額。
可以通過2種方法:控制臺、API創建URTC應用。
通過 創建URTC 應用的API,也可以創建URTC應用。具體調用API的方法,請查看API文檔。
通過集成SDK,可以快速實現實時音視頻通話。
下載SDK,得到的UCloudRtcSdk_ios.framework為動態庫;
使用XCode創建一個新的工程UCloudRtcSdk-ios-demo;
將已下載的動態庫UCloudRtcSdk_ios.framework加入到UCloudRtcSdk-ios-demo工程中Embedded Binaries;
打開Xcode,選擇:項目TARGET ->General->Deployment Target,設置8.0或以上版本;
Privacy - Camera Usage Description
Privacy - Microphone Usage Description
為保障APP退入手機后臺之后,通話可以保持不中斷,建議開啟后臺音頻權限,SDK默認進入后臺之后繼續推送音頻流。
按照上述步驟完成UCloudRtcSdk-ios-demo的前期SDK集成準備之后,請使用Xcode連接iPhone真機,在真機調試環境下,執行編譯Commond + B,提示Build Success,表示SDK集成成功。
建議在初始化 App 的同時,初始化 SDK。
import UCloudRtcSdk_ios
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
使用之前需要對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;//設置流權限
[self.engine joinRoomWithcompletionHandler:^(NSData *data, NSUrlResponse *response, NSError error) {
}];
self.engine?.joinRoomWithcompletionHandler({(data, response, error) -> Void in})
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
}
}
[self.engine unPublish];
self.engine?.unPublish()
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()
}
}
[self.engine unSubscribeMethod:remoteStream];
self.engine?.unSubscribeMethod(remoteStream)
[self.engine leaveRoom];
self.engine?.leaveRoom()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125832.html
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC SDK之前,需要在UCLOUD官...
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。推流成功后,即可直播觀看視頻。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC S...
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。初始化建議在初始化的同時,初始化。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC...
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。集成之前,需要在官網控制臺創建應用。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URT...
摘要:通過集成,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交在線教育和培訓遠程醫療在線會議直播等多種業務場景。使用服務之前,首先需要注冊賬號并且完成實名認證。確定后,自動生成。通過集成URTC SDK,可以從零開始,快速搭建出實時音視頻通信平臺,可以應用于語音和視頻社交、在線教育和培訓、遠程醫療、在線會議、直播等多種業務場景。 集成URTC SDK之前,需要在UCLOUD官...
閱讀 3514·2023-04-25 20:09
閱讀 3720·2022-06-28 19:00
閱讀 3035·2022-06-28 19:00
閱讀 3058·2022-06-28 19:00
閱讀 3132·2022-06-28 19:00
閱讀 2859·2022-06-28 19:00
閱讀 3014·2022-06-28 19:00
閱讀 2610·2022-06-28 19:00