适用于 Android 的 WebRTC 开发工具包 - Kinesis Video Streams

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 Android 的 WebRTC 开发工具包

以下 step-by-step 说明描述了如何使用安卓版 WebRTC SDK 及其相应示例下载、构建和运行 Kinesis Video Streams。

注意

Kinesis Video Streams 在安卓系统上不支持 IPv6 地址。有关在安卓设备上禁用 IPv6 的更多信息和步骤,请参阅 https://support.surfshark.com/hc/en-us/articles/360011828279-How-to-disable-IPv6-on-Android-

下载适用于 Android 的 WebRTC 开发工具包

要在 Android 中下载 WebRTC 开发工具包,请运行以下命令:

git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-android.git

在 Android 中构建 WebRTC 开发工具包

要在 Android 中构建 WebRTC 开发工具包,请完成以下步骤:

  1. amazon-kinesis-video-streams-webrtc-sdk-android/build.gradle使用 Open as Pro ject 打开,将 Android WebRTC SDK 导入 Android Studio 集成开发环境 (IDE)。

  2. 如果您第一次打开项目,它会自动同步。如果不是,则发起同步。当您看到构建错误时,请选择 Install missing SDK package(s) (安装缺少的开发工具包) 来安装所有必需的开发工具包,然后选择 Accept (接受) 并完成安装。

  3. 配置 Amazon Cognito(用户池和身份池)设置。有关详细步骤,请参阅为 Android WebRTC 开发工具包配置 Amazon Cognito。这会生成构建 Android WebRTC 开发工具包所需的身份验证和授权设置。

  4. 在 Android IDE 中,打开 awsconfiguration.json(从 src/main/res/raw/)。此文件如下所示:

    { "Version": "1.0", "CredentialsProvider": { "CognitoIdentity": { "Default": { "PoolId": "REPLACE_ME", "Region": "REPLACE_ME" } } }, "IdentityManager": { "Default": {} }, "CognitoUserPool": { "Default": { "AppClientSecret": "REPLACE_ME", "AppClientId": "REPLACE_ME", "PoolId": "REPLACE_ME", "Region": "REPLACE_ME" } } }

    使用通过运行为 Android WebRTC 开发工具包配置 Amazon Cognito中的步骤生成的值更新 awsconfiguration.json

  5. 确保您的 Android 设备已连接到运行 Android IDE 的计算机。在 Android IDE 中,选择连接的设备,然后构建并运行 WebRTC Android 开发工具包。

    此步骤将在您的 Android 设备上安装一个名为 AWSKinesisVideoWebRTCDemoApp 的应用程序。使用此应用程序,您可以验证移动、网络和 IoT 设备客户端之间的实时 WebRTC 音频/视频流式传输。

运行 Android 示例应用程序

完成以下步骤:

  1. 在您的安卓设备上,使用新账户(先创建账户)或现有的 Amazon Cognito 账户打开AWSKinesisVideoWebRTCDemoApp并登录。

  2. 在中 AWSKinesisVideoWebRTCDemoApp,导航到信道配置页面,创建新的信令信道或选择现有信道。

    注意

    目前,使用此 SDK 中的示例应用程序,您只能在其中运行一个信令通道AWSKinesisVideoWebRTCDemoApp

  3. 可选:如果您想以查看器身份连接到此通道,请选择唯一的 Client Id (客户端 ID)。仅当多个查看器连接到一个通道时,才需要客户端 ID。这有助于通道的主设备识别各自的查看器。

  4. 选择AWS 区域和是要发送音频或视频数据,还是两者都发送。

  5. 要验证 peer-to-peer 直播,执行以下操作之一:

    注意

    确保在本演示中使用的所有客户端上指定相同的信令频道名称、AWS区域、查看者 ID 和AWS账户 ID。

    • P 在两台 Android 设备之间eer-to-peer 直播:主设备和查看器

      • 使用上述步骤,在两个 Android 设备上下载、构建和运行 Android WebRTC 开发工具包。

      • 在一台 Android 设备AWSKinesisVideoWebRTCDemoApp上以主模式打开(选择 S TART MASTER)以启动新会话(信令信道)。

        注意

        目前,任何给定信令通道只能有一个主设备。

      • 在第二台 Android 设备AWSKinesisVideoWebRTCDemoApp上以查看器模式打开,连接到上述步骤中启动的信令信道(会话)(选择 S TART VIEWER)。

        验证查看器是否可以看到主设备的音频/视频数据。

    • P 在嵌入式 SDK 主站和安卓设备查看器之间eer-to-peer 直播

      • 在摄像头设备上,下载、构建 C 中适用于嵌入式设备的 WebRTC 开发工具包 并以主设备模式运行它。

      • 使用上述步骤,在 Android 设备上下载、构建和运行 Android WebRTC 开发工具包。在此 Android 设备AWSKinesisVideoWebRTCDemoApp上以查看器模式打开,验证查看者能否看到嵌入式 SDK 主站的音频/视频数据。

    • P 在作为主设备的 Android 设备和作为查看者的网络浏览器之间进行eer-to-peer 流式传输

      • 使用上述步骤,在 Android 设备上下载、构建和运行 Android WebRTC 开发工具包。在这个 Android 设备AWSKinesisVideoWebRTCDemoApp上以主模式打开(选择 S TART MASTER)以启动新会话(信令信道)。

      • 下载、构建 适用于 Web 应用程序的 WebRTC SDK JavaScript 并以查看器身份运行它,并验证查看器是否可以看到 Android 主设备的音频/视频。

为 Android WebRTC 开发工具包配置 Amazon Cognito

Amazon Cognito 为您的 Web 和移动应用程序提供身份验证、授权和用户管理。Amazon Cognito 的两个主要组件是用户池和身份池。用户池是为您的应用程序提供注册和登录选项的用户目录。使用身份池,您可以授予用户访问其他 AWS 服务的权限。

使用以下过程创建用户池和身份池,以生成构建 Android WebRTC 开发工具包所需的身份验证和授权设置。

设置 Amazon Cognito - 用户池
  1. 登录 Amazon Cognito 控制台。

  2. 选择 Manage your User Pools

  3. 选择 Create a user pool(创建用户池)。

  4. Pool name (池名称) 键入值,例如 <username>_android_user_pool

  5. 选择 Review defaults (查看原定设置)

  6. 选择 Create pool

  7. 复制并保存 Pool ID (池 ID) 值。在 Android WebRTC 开发工具包中配置身份池和 awsconfiguration.json 文件时,您将需要此值。

  8. 在池页面上,选择 App clients

  9. 选择 Add an app client(添加应用程序客户端)。

  10. App client name (应用程序客户端名称) 键入值,例如 <username>_android_app_client

  11. 选择 Create app client(创建应用程序客户端)。

  12. 选择 Show Details (显示详细信息),然后复制并保存应用程序客户端 ID 和应用程序客户端密钥。在 Android WebRTC 开发工具包中配置身份池和 awsconfiguration.json 文件时,您将需要这些值。

设置 Amazon Cognito - 身份池
  1. 打开 Amazon Cognito 控制台。

  2. 选择 Manage Identity Pools(管理身份池)。

  3. 选择 Create new identity pool(创建新身份池)。

  4. 为身份池名称键入值,例如 <username>_android_identity_pool

  5. 展开 Authentication providers(身份验证提供商)部分。在 Cognito 选项卡上,添加上一过程中 User Pool IDApp client ID 的值。

  6. 选择 Create pool

  7. 在下一页上,展开 Show Details 部分。

  8. 在 Role name (角色名称) 的值以 Auth_Role 结尾的部分中(如果您没有角色,则必须创建一个),选择 View Policy Document (查看策略文档)

  9. 选择 Edit (编辑),确认显示的 Edit Policy (编辑策略) 对话框,然后将以下 JSON 粘贴到编辑器中:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-identity:*", "kinesisvideo:*" ], "Resource": [ "*" ] } ] }
  10. 选择 Allow

  11. 在下一页上,复制并保存 “获取AWS凭证” 代码片段中的身份池 ID 值。您需要此值来配置 Android WebRTC 开发工具包中的 awsconfiguration.json 文件。