本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 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 开发工具包,请完成以下步骤:
-
打开 Android WebRTC SDK 将安卓工作室集成开发环境 (IDE) 导入安卓工作室集成开发环境 (IDE)
amazon-kinesis-video-streams-webrtc-sdk-android/build.gradle
和以项目形式打开。 -
如果您第一次打开项目,它会自动同步。如果不是,则发起同步。当您看到构建错误时,请选择 Install missing SDK package(s) (安装缺少的开发工具包) 来安装所有必需的开发工具包,然后选择 Accept (接受) 并完成安装。
-
配置 Amazon Cognito(用户池和身份池)设置。有关详细步骤,请参阅为 Android WebRTC 开发工具包配置 Amazon Cognito。这会生成构建 Android WebRTC 开发工具包所需的身份验证和授权设置。
-
在 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
。 -
确保您的 Android 设备已连接到运行 Android IDE 的计算机。在 Android IDE 中,选择连接的设备,然后构建并运行 WebRTC Android 开发工具包。
此步骤将在您的 Android 设备上安装一个名为
AWSKinesisVideoWebRTCDemoApp
的应用程序。使用此应用程序,您可以验证移动、网络和 IoT 设备客户端之间的实时 WebRTC 音频/视频流式传输。
运行 Android 示例应用程序
完成以下步骤:
-
在你的安卓设备上,打开AWSKinesisVideoWebRTCDemoApp然后使用新的(先创建)或现有的 Amazon Cognito 账户登录。
-
在AWSKinesisVideoWebRTCDemoApp,导航到频道配置页面,然后创建一个新的信令信道或选择一个现有的信令信道。
注意
目前,使用此 SDK 中的示例应用程序,您只能在中运行一个信令信道AWSKinesisVideoWebRTCDemoApp。
-
可选:如果您想以查看器身份连接到此通道,请选择唯一的 Client Id (客户端 ID)。仅当多个查看器连接到一个通道时,才需要客户端 ID。这有助于通道的主设备识别各自的查看器。
-
选择AWS 区域以及你是想发送音频或视频数据,还是两者兼而有之。
-
进行验证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 - 用户池
-
登录 Amazon Cognito 控制台。
-
选择 Manage your User Pools。
-
选择 Create a user pool(创建用户池)。
-
为 Pool name (池名称) 键入值,例如
<username>_android_user_pool
。 -
选择 Review defaults (查看原定设置)。
-
选择 Create pool。
-
复制并保存 Pool ID (池 ID) 值。在 Android WebRTC 开发工具包中配置身份池和
awsconfiguration.json
文件时,您将需要此值。 -
在池页面上,选择 App clients。
-
选择 Add an app client(添加应用程序客户端)。
-
为 App client name (应用程序客户端名称) 键入值,例如
<username>_android_app_client
。 -
选择 Create app client(创建应用程序客户端)。
-
选择 Show Details (显示详细信息),然后复制并保存应用程序客户端 ID 和应用程序客户端密钥。在 Android WebRTC 开发工具包中配置身份池和
awsconfiguration.json
文件时,您将需要这些值。
设置 Amazon Cognito - 身份池
-
打开 Amazon Cognito 控制台。
-
选择 Manage Identity Pools(管理身份池)。
-
选择 Create new identity pool(创建新身份池)。
-
为身份池名称键入值,例如
<username>_android_identity_pool
。 -
展开 Authentication providers(身份验证提供商)部分。在 Cognito 选项卡上,添加上一过程中
User Pool ID
和App client ID
的值。 -
选择 Create pool。
-
在下一页上,展开 Show Details 部分。
-
在 Role name (角色名称) 的值以 Auth_Role 结尾的部分中(如果您没有角色,则必须创建一个),选择 View Policy Document (查看策略文档)。
-
选择 Edit (编辑),确认显示的 Edit Policy (编辑策略) 对话框,然后将以下 JSON 粘贴到编辑器中:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-identity:*", "kinesisvideo:*" ], "Resource": [ "*" ] } ] }
-
选择 Allow。
-
在下一页上,从中复制并保存身份池 ID 值获取AWS全权证书代码片段。您需要此值来配置 Android WebRTC 开发工具包中的
awsconfiguration.json
文件。