

# IVS iOS 广播 SDK 入门 \$1 实时直播功能
<a name="broadcast-ios-getting-started"></a>

本文档将引导您完成 IVS 实时直播 iOS 广播 SDK 入门所涉及的步骤。

## 安装库
<a name="broadcast-ios-install"></a>

我们建议您通过 Swift 程序包管理器集成广播 SDK。（或者，您可以手动将框架添加至项目。）

### 建议：集成广播 SDK（Swift 程序包管理器）
<a name="broadcast-ios-install-swift"></a>

1. 从 [https://broadcast.live-video.net/1.41.0/Package.swift](https://broadcast.live-video.net/1.41.0/Package.swift) 下载 Package.swift 文件。

1. 在您的项目中，创建一个名为 AmazonIVSBroadcast 的新目录并将其添加到版本控制中。

1. 将下载的 Package.swift 文件放到新目录中。

1. 在您的 Xcode 项目中，转到**文件 > 添加软件包依赖项**，然后选择**添加本地...**

1. 导航到并选择您创建的 AmazonIVSBroadcast 目录，然后选择**添加软件包**。

1. 当系统提示**选择 AmazonIVSBroadcast 的软件包产品**时，请通过在**添加到目标**部分中设置应用程序目标来将 **AmazonIVSBroadcastStages** 选为**软件包产品**。

1. 选择**添加软件包**。

**重要提示：**IVS 实时流式传输广播 SDK 包含 IVS 低延迟流式传输广播 SDK 的所有功能。不可能将两个 SDK 集成到同一个项目中。

### 替代方法：手动安装框架
<a name="broadcast-ios-install-manual"></a>

1. 最新版本下载链接：[https://broadcast.live-video.net/1.41.0/AmazonIVSBroadcast-Stages.xcframework.zip](https://broadcast.live-video.net/1.41.0/AmazonIVSBroadcast-Stages.xcframework.zip)。

1. 提取归档的内容。`AmazonIVSBroadcast.xcframework` 包含适用于设备和模拟器的开发工具包。

1. 通过以下方法嵌入 `AmazonIVSBroadcast.xcframework`：将其拖动到应用程序目标的 **General**（常规）选项卡中的 **Frameworks, Libraries, and Embedded Content**（框架、库和嵌入式内容）部分中。  
![\[应用程序目标 General（常规）选项卡上的 Frameworks, Libraries, and Embedded Content（框架、库和嵌入式内容）部分：\]](http://docs.aws.amazon.com/zh_cn/ivs/latest/RealTimeUserGuide/images/iOS_Broadcast_SDK_Guide_xcframework.png)

## 请求权限
<a name="broadcast-ios-permissions"></a>

您的应用必须请求权限才能访问用户摄像头和麦克风。（这并非特定于 Amazon IVS；需要访问摄像头和麦克风的任何应用程序都需要这样做。）

我们在此处检查用户是否已授予权限，如果没有，对他们提出要求：

```
switch AVCaptureDevice.authorizationStatus(for: .video) {
case .authorized: // permission already granted.
case .notDetermined:
   AVCaptureDevice.requestAccess(for: .video) { granted in
       // permission granted based on granted bool.
   }
case .denied, .restricted: // permission denied.
@unknown default: // permissions unknown.
}
```

如果您希望分别访问摄像头和麦克风，则需要对 `.video` 和 `.audio` 媒体类型进行此操作。

您还需要将 `NSCameraUsageDescription` 和 `NSMicrophoneUsageDescription` 的条目添加到 `Info.plist`。否则，尝试请求权限时，您的应用程序将崩溃。

## 禁用应用程序空闲计时器
<a name="broadcast-ios-disable-idle-timer"></a>

您可以自由选择，但我们建议您这样做。它可以防止您的设备在使用广播开发工具包时进入睡眠状态，这会中断广播。

```
override func viewDidAppear(_ animated: Bool) {
   super.viewDidAppear(animated)
   UIApplication.shared.isIdleTimerDisabled = true
}
override func viewDidDisappear(_ animated: Bool) {
   super.viewDidDisappear(animated)
   UIApplication.shared.isIdleTimerDisabled = false
}
```