摘要:通過集成,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交在線教育和培訓(xùn)遠(yuǎn)程醫(yī)療在線會(huì)議直播等多種業(yè)務(wù)場(chǎng)景。使用服務(wù)之前,首先需要注冊(cè)賬號(hào)并且完成實(shí)名認(rèn)證。確定后,自動(dòng)生成。通過集成,可以快速實(shí)現(xiàn)實(shí)時(shí)音視頻通話。
通過集成URTC SDK,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交、在線教育和培訓(xùn)、遠(yuǎn)程醫(yī)療、在線會(huì)議、直播等多種業(yè)務(wù)場(chǎng)景。
集成URTC SDK之前,需要在UCLOUD官網(wǎng)控制臺(tái)創(chuàng)建URTC應(yīng)用。
在UCLOUD官網(wǎng),【登錄控制臺(tái)】。
使用URTC服務(wù)之前,首先需要注冊(cè)賬號(hào) 并且完成 實(shí)名認(rèn)證 。
每個(gè)賬號(hào)最大支持創(chuàng)建5個(gè)URTC應(yīng)用,需要?jiǎng)?chuàng)建更多URTC應(yīng)用,請(qǐng)聯(lián)系客戶經(jīng)理增加配額。
可以通過2種方法:控制臺(tái)、API創(chuàng)建URTC應(yīng)用。
通過 創(chuàng)建URTC 應(yīng)用的API,也可以創(chuàng)建URTC應(yīng)用。具體調(diào)用API的方法,請(qǐng)查看API文檔。
通過集成SDK,可以快速實(shí)現(xiàn)實(shí)時(shí)音視頻通話。
下載SDK,得到的UCloudRtcSdk_ios.framework為動(dòng)態(tài)庫;
使用XCode創(chuàng)建一個(gè)新的工程UCloudRtcSdk-ios-demo;
將已下載的動(dòng)態(tài)庫UCloudRtcSdk_ios.framework加入到UCloudRtcSdk-ios-demo工程中Embedded Binaries;
打開Xcode,選擇:項(xiàng)目TARGET ->General->Deployment Target,設(shè)置8.0或以上版本;
Privacy - Camera Usage Description
Privacy - Microphone Usage Description
為保障APP退入手機(jī)后臺(tái)之后,通話可以保持不中斷,建議開啟后臺(tái)音頻權(quán)限,SDK默認(rèn)進(jìn)入后臺(tái)之后繼續(xù)推送音頻流。
按照上述步驟完成UCloudRtcSdk-ios-demo的前期SDK集成準(zhǔn)備之后,請(qǐng)使用Xcode連接iPhone真機(jī),在真機(jī)調(diào)試環(huán)境下,執(zhí)行編譯Commond + B,提示Build Success,表示SDK集成成功。
建議在初始化 App 的同時(shí),初始化 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)
務(wù)必要設(shè)置代理對(duì)象,并實(shí)現(xiàn)代理回調(diào)方法,設(shè)置代理對(duì)象失敗,會(huì)導(dǎo)致 App 收不到相關(guān)回調(diào)。
engine.delegate = self;
self.engine?.delegate = self
使用之前需要對(duì)SDK進(jìn)行相關(guān)設(shè)置,如果不設(shè)置,系統(tǒng)將會(huì)采用默認(rèn)值。
初始化完成后,即可調(diào)用 SDK 相關(guān)接口,實(shí)現(xiàn)對(duì)應(yīng)功能。
self.engine.isAutoPublish = YES;//加入房間后將自動(dòng)發(fā)布本地音視頻 默認(rèn)為YES
self.engine.isAutoSubscribe = YES;//加入房間后將自動(dòng)訂閱遠(yuǎn)端音視頻 默認(rèn)為YES
self.engine.isOnlyAudio = NO;//將啟用純音頻模式 默認(rèn)為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;//加入房間后將自動(dòng)發(fā)布本地音視頻 默認(rèn)為ture
self.engine?.isAutoSubscribe = ture;//加入房間后將自動(dòng)訂閱遠(yuǎn)端音視頻 默認(rèn)為ture
self.engine?.isOnlyAudio = false;//將啟用純音頻模式 默認(rèn)為false
self.engine?.isDebug = false;//是否開啟日志
self.engine?.videoProfile = ._VideoProfile_360P_1;//設(shè)置視頻分辨率
self.engine?.streamProfile = .streamProfileAll;//設(shè)置流權(quán)限
[self.engine joinRoomWithcompletionHandler:^(NSData *data, NSUrlResponse *response, NSError error) {
}];
self.engine?.joinRoomWithcompletionHandler({(data, response, error) -> Void in})
1)自動(dòng)發(fā)布模式下,joinRoom成功后,即可發(fā)布本地流,無需再次調(diào)用publish接口;
2)手動(dòng)發(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
}
}
[self.engine unPublish];
self.engine?.unPublish()
1)自動(dòng)訂閱模式下,joinRoom成功后,即可訂閱遠(yuǎn)程流,無需再次調(diào)用subscribeMethod接口;
2)手動(dòng)訂閱模式下,joinRoom成功后,可通過下述接口訂閱遠(yuǎn)程流;
[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()
}
}
[self.engine unSubscribeMethod:remoteStream];
self.engine?.unSubscribeMethod(remoteStream)
[self.engine leaveRoom];
self.engine?.leaveRoom()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/125832.html
摘要:通過集成,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交在線教育和培訓(xùn)遠(yuǎn)程醫(yī)療在線會(huì)議直播等多種業(yè)務(wù)場(chǎng)景。使用服務(wù)之前,首先需要注冊(cè)賬號(hào)并且完成實(shí)名認(rèn)證。確定后,自動(dòng)生成。通過集成URTC SDK,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交、在線教育和培訓(xùn)、遠(yuǎn)程醫(yī)療、在線會(huì)議、直播等多種業(yè)務(wù)場(chǎng)景。 集成URTC SDK之前,需要在UCLOUD官...
摘要:通過集成,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交在線教育和培訓(xùn)遠(yuǎn)程醫(yī)療在線會(huì)議直播等多種業(yè)務(wù)場(chǎng)景。使用服務(wù)之前,首先需要注冊(cè)賬號(hào)并且完成實(shí)名認(rèn)證。確定后,自動(dòng)生成。推流成功后,即可直播觀看視頻。通過集成URTC SDK,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交、在線教育和培訓(xùn)、遠(yuǎn)程醫(yī)療、在線會(huì)議、直播等多種業(yè)務(wù)場(chǎng)景。 集成URTC S...
摘要:通過集成,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交在線教育和培訓(xùn)遠(yuǎn)程醫(yī)療在線會(huì)議直播等多種業(yè)務(wù)場(chǎng)景。使用服務(wù)之前,首先需要注冊(cè)賬號(hào)并且完成實(shí)名認(rèn)證。確定后,自動(dòng)生成。初始化建議在初始化的同時(shí),初始化。通過集成URTC SDK,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交、在線教育和培訓(xùn)、遠(yuǎn)程醫(yī)療、在線會(huì)議、直播等多種業(yè)務(wù)場(chǎng)景。 集成URTC...
摘要:通過集成,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交在線教育和培訓(xùn)遠(yuǎn)程醫(yī)療在線會(huì)議直播等多種業(yè)務(wù)場(chǎng)景。集成之前,需要在官網(wǎng)控制臺(tái)創(chuàng)建應(yīng)用。使用服務(wù)之前,首先需要注冊(cè)賬號(hào)并且完成實(shí)名認(rèn)證。確定后,自動(dòng)生成。通過集成URTC SDK,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交、在線教育和培訓(xùn)、遠(yuǎn)程醫(yī)療、在線會(huì)議、直播等多種業(yè)務(wù)場(chǎng)景。 集成URT...
摘要:通過集成,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交在線教育和培訓(xùn)遠(yuǎn)程醫(yī)療在線會(huì)議直播等多種業(yè)務(wù)場(chǎng)景。使用服務(wù)之前,首先需要注冊(cè)賬號(hào)并且完成實(shí)名認(rèn)證。確定后,自動(dòng)生成。通過集成URTC SDK,可以從零開始,快速搭建出實(shí)時(shí)音視頻通信平臺(tái),可以應(yīng)用于語音和視頻社交、在線教育和培訓(xùn)、遠(yuǎn)程醫(yī)療、在線會(huì)議、直播等多種業(yè)務(wù)場(chǎng)景。 集成URTC SDK之前,需要在UCLOUD官...
閱讀 3538·2023-04-25 20:09
閱讀 3739·2022-06-28 19:00
閱讀 3060·2022-06-28 19:00
閱讀 3081·2022-06-28 19:00
閱讀 3175·2022-06-28 19:00
閱讀 2880·2022-06-28 19:00
閱讀 3047·2022-06-28 19:00
閱讀 2638·2022-06-28 19:00