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

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

适用于 Android 的 WebRTC 开发工具包

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

注意

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

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

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

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

在 Android 中构建 WebRTC 开发工具包

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

  1. 打开 Android WebRTC SDK 将安卓工作室集成开发环境 (IDE) 导入安卓工作室集成开发环境 (IDE)amazon-kinesis-video-streams-webrtc-sdk-android/build.gradle以项目形式打开

  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. 在你的安卓设备上,打开AWSKinesisVideoWebRTCDemoApp然后使用新的(先创建)或现有的 Amazon Cognito 账户登录。

  2. AWSKinesisVideoWebRTCDemoApp,导航到频道配置页面,然后创建一个新的信令信道或选择一个现有的信令信道。

    注意

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

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

  4. 选择AWS 区域以及你是想发送音频或视频数据,还是两者兼而有之。

  5. 进行验证peer-to-peer流式传输,执行以下任一操作:

    注意

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

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

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

      • 打开AWSKinesisVideoWebRTCDemoApp在主模式下的一台 Android 设备上(选择启动大师) 启动新会话(信号通道)。

        注意

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

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

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

    • Peer-to-peer在嵌入式 SDK 主设备和 Android 设备查看器之间流式传输

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

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

    • Peer-to-peer以主设备身份在 Android 设备和以查看者身份在 Web 浏览器之间进行直

      • 使用上述步骤,在 Android 设备上下载、构建和运行 Android WebRTC 开发工具包。打开AWSKinesisVideoWebRTCDemoApp在这台 Android 设备上处于主模式(选择启动大师) 启动新会话(信号通道)。

      • 下载、构建 webRTC SDK 在JavaScript适用于 Web 应用程序 并以查看器身份运行它,并验证查看器是否可以看到 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. 在下一页上,从中复制并保存身份池 ID 值获取AWS全权证书代码片段。您需要此值来配置 Android WebRTC 开发工具包中的 awsconfiguration.json 文件。