适用于 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-H ow-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,将安卓 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. 在您的 Android 设备上,使用新的(先创建)或现有的 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上以主模式打开(选择启动主模式),开始新的会话(信令信道)。

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

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

先决条件

  • 建议使用 Android Studio 检查、编辑和运行应用程序代码。我们建议使用最新的稳定版本。

  • 在示例代码中,您需要提供亚马逊 Cognito 凭证。

按照以下步骤设置 Amazon Cognito 用户池和身份池。

设置用户池

设置用户池
  1. 登录 Amazon Cognito 控制台并验证区域是否正确。

  2. 在左侧导航栏中,选择 “用户池”。

  3. 在 “用户池” 部分,选择 “创建用户池”。

  4. 完成以下各节:

    1. 第 1 步:配置登录体验-在 Cognito 用户池登录选项部分,选择相应的选项。

      选择下一步

    2. 步骤 2:配置安全要求-选择相应的选项。

      选择下一步

    3. 第 3 步:配置注册体验-选择相应的选项。

      选择下一步

    4. 步骤 4:配置消息传送-选择相应的选项。

      IAM 角色选择字段中,选择现有角色或创建新角色。

      选择下一步

    5. 第 5 步:集成您的应用程序-选择相应的选项。

      在 “初始应用程序客户端” 字段中,选择 “机密客户端”。

      选择下一步

    6. 步骤 6:查看并创建-查看您在前面部分中的选择,然后选择创建用户池

  5. 在 “用户池” 页面上,选择您刚刚创建的池。

    复制用户池 ID 并记下来以备后用。在awsconfiguration.json文件中,这是CognitoUserPool.Default.PoolId

  6. 选择 “应用程序集成” 选项卡,然后转到页面底部。

  7. 应用程序客户端列表部分,选择您刚刚创建的应用程序客户端名称

    复制客户端 ID 并记下来以备后用。在awsconfiguration.json文件中,这是CognitoUserPool.Default.AppClientId

  8. 出示客户机密并记下来以备后用。在awsconfiguration.json文件中,这是CognitoUserPool.Default.AppClientSecret

设置身份池

设置身份池
  1. 登录 Amazon Cognito 控制台并验证区域是否正确。

  2. 在左侧导航栏中,选择 “身份池”。

  3. 选择创建身份池

  4. 配置身份池。

    1. 步骤 1:配置身份池信任-完成以下部分:

      • 用户访问权限-选择经过身份验证的访问权限

      • 经过身份验证的身份源-选择 Amazon Cognito 用户池

      选择下一步

    2. 步骤 2:配置权限-在 “经过身份验证的角色” 部分,填写以下字段:

      • IAM 角色-选择创建新的 IAM 角色

      • IAM 角色名称-输入名称并记下来供后续步骤使用。

      选择下一步

    3. 步骤 3:Connect 身份提供商-在 “用户池详细信息” 部分中,填写以下字段:

      • 用户池 ID-选择您之前创建的用户池。

      • 应用程序客户端 ID-选择您之前创建的应用程序客户端 ID。

      选择下一步

    4. 步骤 4:配置属性-在身份池名称字段中键入名称

      选择下一步

    5. 第 5 步:查看并创建-查看您在每个部分中的选择,然后选择创建身份池

  5. 身份池页面上,选择您的新身份池。

    复制身份池 ID 并记下来以备后用。在awsconfiguration.json文件中,这是CredentialsProvider.CognitoIdentity.Default.PoolId

  6. 更新 IAM 角色的权限。

    1. 登录 AWS Management Console,然后使用以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

    2. 在左侧的导航栏中,选择 “角色”。

    3. 找到并选择您在上面创建的角色。

      注意

      如果需要,请使用搜索栏。

    4. 选择附加的权限策略。

      选择编辑

    5. 选择 JSON 选项卡,然后将策略替换为以下内容:

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

      选择下一步

    6. 如果尚未选中 “将此新版本设为默认版本” 旁边的复选框。

      选择保存更改