快速开始
准备环境
在开始集成互动直播 UIKit 前,请确保开发环境满足以下要求:
- Xcode 15.0 或以上版本。
- iOS 12.0 或以上版本且支持音视频的 iOS 设备。
- iOS 设备已经连接到 Internet。
前提条件
- 已在 ZEGO 控制台 创建项目,并申请有效的 AppID 和 AppSign,详情请参考 控制台 - 项目信息。
- 联系 ZEGO 技术支持,开通 UIKit 相关服务。
实现流程
集成 SDK
1 添加 ZegoUIKitPrebuiltLiveStreaming 作为依赖项
- 打开终端,前往到项目的根目录,并运行以下命令创建
podfile
:Untitledpod init
1 - 编辑
Podfile
文件添加基本依赖项:Untitledpod 'ZegoUIKitPrebuiltLiveStreaming'
1 - 在终端中运行以下命令,使用 Cocoapods 下载所需的所有依赖项和 SDK:
Untitled
pod install
1
2 导入 ZegoUIKit 和 ZegoUIKitPrebuiltCall
在项目中导入 ZegoUIKit 和 ZegoUIKitPrebuiltCall。
swift
objc
import ZegoUIKit
import ZegoUIKitPrebuiltLiveStreaming
// MainViewController.swift
class MainViewController: UIViewController {
// 其他代码...
}
1
@import ZegoUIKit;
@import ZegoUIKitPrebuiltLiveStreaming;
@import ZegoUIKitSignalingPlugin;
1
项目配置
打开Info.plist
,在dict
部分内添加以下代码:
Untitled
<key>NSCameraUsageDescription</key>
<string>我们需要相机访问权限以实现通话</string>
<key>NSMicrophoneUsageDescription</key>
<string>我们需要麦克风访问权限以实现通话</string>
1
使用 ZegoUIKitPrebuiltLiveStreamingVC
- 指定
userID
和userName
来指定用户以实现直播服务。 liveID
代表您想要开始或观看的一场直播(目前仅支持一个主播)。
Note
userID
、userName
和liveID
只能包含数字、字母和下划线 (_)。- 使用相同的
liveID
将进入相同的直播间,但直播间内只有一个用户可以作为主播加入,其他用户只能作为观众加入。 - UIKit 默认语言为英文,如需修改为中文,请修改
ZegoUIKitPrebuiltLiveStreamingConfig.translationText
。
swift
objc
// 您的 MainViewController.swift
class MainViewController: UIViewController {
// 其他相关代码
var userID: String = <#UserID#>
var userName: String = <#UserName#>
var liveID: String = <#liveID#>
var appID: UInt32 = <#AppID#> // 从 ZEGO 控制台获取
var appSign: String = <#appSign#> // 从 ZEGO 控制台获取
// 房主开始直播
func startLive() {
let config: ZegoUIKitPrebuiltLiveStreamingConfig = ZegoUIKitPrebuiltLiveStreamingConfig.host()
// 修改语言为中文
config.translationText = ZegoTranslationText(language: .CHS)
let liveVC: ZegoUIKitPrebuiltLiveStreamingVC = ZegoUIKitPrebuiltLiveStreamingVC(appID: self.appID, appSign: self.appSign, userID: self.userID, userName: self.userName, liveID: self.liveID, config: config)
liveVC.modalPresentationStyle = .fullScreen
self.present(liveVC, animated: true, completion: nil)
}
// 观众观看直播
func watchLive() {
let config: ZegoUIKitPrebuiltLiveStreamingConfig = ZegoUIKitPrebuiltLiveStreamingConfig.audience()
// 修改语言为中文
config.translationText = ZegoTranslationText(language: .CHS)
let liveVC: ZegoUIKitPrebuiltLiveStreamingVC = ZegoUIKitPrebuiltLiveStreamingVC(appID: self.appID, appSign: self.appSign, userID: self.userID, userName: self.userName, liveID: self.liveID, config: config)
liveVC.modalPresentationStyle = .fullScreen
self.present(liveVC, animated: true, completion: nil)
}
}
1
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
unsigned int appID =appID; // 从 ZEGO 控制台获取
NSString *appSign = @"appSign"; // 从 ZEGO 控制台获取
NSString *userName = @"userName";
NSString *userID = @"userID";
NSString *roomID = @"roomID";
}
// 房主开始直播
- (void)startLive {
ZegoUIKitPrebuiltLiveStreamingConfig *config = [ZegoUIKitPrebuiltLiveStreamingConfig hostWithEnableSignalingPlugin:YES];
// 修改语言为中文
config.translationText = [[ZegoTranslationText alloc] initWithLanguage:ZegoUIKitLanguageCHS];
ZegoUIKitPrebuiltLiveStreamingVC *liveVC = [[ZegoUIKitPrebuiltLiveStreamingVC alloc] init:appID appSign:appSign userID:userID userName:userName liveID:roomID config:config];
liveVC.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:liveVC animated:YES completion:^{
}];
}
// 观众观看直播
- (void)watchLive {
ZegoUIKitPrebuiltLiveStreamingConfig *config = [ZegoUIKitPrebuiltLiveStreamingConfig audienceWithEnableSignalingPlugin:YES];
// 修改语言为中文
config.translationText = [[ZegoTranslationText alloc] initWithLanguage:ZegoUIKitLanguageCHS];
ZegoUIKitPrebuiltLiveStreamingVC *liveVC = [[ZegoUIKitPrebuiltLiveStreamingVC alloc] init:appID appSign:appSign userID:userID userName:userName liveID:roomID config:config];
liveVC.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:liveVC animated:YES completion:^{
}];
}
1
然后,通过呈现liveVC
来实现直播互动。
运行和测试
至此,您已经完成了所有集成步骤。
只需在 Xcode 中点击 Run 即可在设备上运行和测试您的应用程序。
相关资源
示例代码
获取完整示例代码。