视频 SDK 合规使用说明

更新时间不可用

了解 App 使用视频 SDK 时的权限、初始化时机、可选个人信息配置、隐私政策披露示例和最终用户权利响应建议。

根据中国法律法规和监管部门规章要求,App 开发运营者(以下简称“开发者”或“您”)在提供网络产品服务时应尊重和保护最终用户个人信息,不得违法违规收集使用个人信息,保证和承诺个人信息处理行为获得最终用户的授权同意,遵循最小必要原则,并且应当采取有效的技术措施和组织措施,确保个人信息安全。

为帮助开发者在使用 SDK 的过程中更好地落实用户个人信息保护相关要求,避免出现侵害用户个人信息权益情形,上海声网科技有限公司(以下简称“我们”)特制定本 视频 SDK 合规使用说明文档(以下简称“文档”)。

一、App 个人信息保护的合规要求

为保护 App 最终用户的个人信息,App 及 App 的开发者需要满足如下合规要求:

  • App 开发者应该制定隐私政策,并在 App 界面中显著展示。
  • App 隐私政策应该单独成文,而不是作为用户协议等文件中的一部分进行展示。
  • App 隐私政策应该明示收集和使用个人信息的目的、方式和范围,并且确保隐私政策链接正常有效,易于访问和阅读。
  • App 隐私政策应逐项说明 App 各项业务功能以及对应收集的个人信息类型,不应使用“等、例如”等方式概括说明。
  • App 隐私政策应显著标识个人敏感信息类型(如:字体加粗等)。
  • App 隐私政策应逐项说明调用的第三方 SDK,包括明示 SDK 名称、SDK 开发者名称;SDK 收集和处理的个人信息类型、目的、方式、范围;SDK 隐私政策链接。

二、App 使用视频 SDK 时的合规指引

SDK 向您提供了可选个人信息及权限的控制开关,您可以根据 App 所需的 SDK 功能服务自行配置打开或关闭隐私信息请求开关。

  • 基本功能:本 SDK 的基本功能是为开发者提供稳定的视频功能,包括视频通话、视频互动等基础视频功能。
  • 扩展功能:在基本功能的基础上,本 SDK 还提供了额外的扩展功能,例如云端录制、云端转码、对话式 AI 引擎。其中 AI 智能识别涉及到可选个人信息收集,具体请参考下文。

1. SDK 所需的系统权限的说明

视频 SDK 功能所需的权限,您可以参考如下表格,了解相关权限功能和时机。

SDK 只会检查 App 是否获得相应授权,不会主动向最终用户申请权限。

权限配置,请查阅相关配置文档:

Android 操作系统应用权限列表:

权限权限功能说明必选或可选申请时机
INTERNET 访问网络用于在加入频道时接入网络必选当需要接入网络时
ACCESS_NETWORK_STATE 查看网络状态用于查看网络连接状态可选当需要查看网络状态时
ACCESS_WIFI_STATE 查看 WiFi 状态用于查看 WiFi 连接状态可选当需要查看 WiFi 状态时
CAMERA 摄像头权限用于提供视频通话和互动功能,传输交互视频画面可选

当 App 需要使用摄像头时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

RECORD_AUDIO 麦克风权限用于提供语音通话和互动功能,传输交互语音信息可选

当 App 需要使用麦克风时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

MODIFY_AUDIO_SETTINGS 麦克风设置权限用于提供音视频通话设置功能可选当用户设置麦克风时
BLUETOOTH_CONNECT 蓝牙连接权限

用于支持蓝牙耳机和耳麦的接入

仅针对 Android 12 及以上版本的设备。

可选

当 App 需要开启蓝牙时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

READ_PHONE_STATE 读取电话状态权限

用于识别设备接到电话呼入状态,当电话呼入时,停止音频传输和交互

仅针对 Android 12 及以上版本的设备。

可选当用户设备电话呼入时,SDK 会识别来电状态,并会停止 SDK 音频传输和交互。
表格内容超出当前宽度,可横向滚动查看更多列。

iOS 操作系统应用权限列表:

权限权限功能说明必选或可选申请时机
Camera Usage Description 摄像头权限用于提供视频通话和互动功能,传输和交互视频画面可选

当 App 需要使用摄像头时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

Microphone Usage Description 麦克风权限用于提供语音通话和互动功能,传输和交互语音信息可选

当 App 需要使用麦克风时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

表格内容超出当前宽度,可横向滚动查看更多列。

HarmonyOS 操作系统应用权限列表:

权限权限功能说明必选或可选申请时机
ohos.permission.INTERNET 网络权限使用网络传输音视频数据必选当 App 需要接入网络时
ohos.permission.CAMERA 摄像头权限用于提供视频通话和互动功能,传输交互视频画面可选

当 App 需要使用摄像头时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

ohos.permission.MICROPHONE 麦克风权限用于提供语音通话和互动功能,传输交互语音信息可选

当 App 需要使用麦克风时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

ohos.permission.GET_NETWORK_INFO 网络信息权限用于监测网络变化以便规划网络链接节点可选

当 App 需要获取网络信息时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

ohos.permission.KEEP_BACKGROUND_RUNNING 后台运行权限

用于 App 在后台运行时可以正常进行音频互动可选

当 App 需要在后台继续进行音频互动时

SDK 检查 App 是否获得相应授权,不会主动申请权限。

表格内容超出当前宽度,可横向滚动查看更多列。

2. SDK 初始化及业务功能调用时机说明

您应确保在登录注册页面及 App 首次运行时,通过简洁、明显且易于访问方式向最终用户告知涵盖个人信息处理主体、处理目的、处理方式、处理类型、保存期限等内容的 App 个人信息处理规则(App 隐私政策)。

您应确保在最终用户同意 App 隐私政策后,再进行视频 SDK 的初始化。并且,在用户同意隐私政策前,您应避免动态申请涉及用户个人信息的敏感设备权限;也应避免私自采集和上报个人信息。如果最终用户不同意 App 隐私政策,则不能初始化视频 SDK,无法使用 SDK 功能。

SDK 初始化和相关功能配置,请查阅相关配置文档:

SDK 功能、接口配置方式及示例说明:

系统业务功能相关个人信息配置方式及示例时机
Android音视频互动

必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、屏幕分辨率、IP 地址、网络接入方式和类型、加速度传感器信息(设备屏幕旋转方向);

可选:频道内用户 ID;

权限:摄像头权限、麦克风权限

配置开启示例:

RTCEngine.joinChannel(String token, String channelId, int uid, ChannelMediaOptions options);

参数:

  • token:在服务端生成的用于鉴权的动态密钥
  • channel Id:频道名
  • uid:用户 ID,当 uid 为 0 时,服务端将动态给 uid 分配随机值,即不收集该信息
  • options:频道媒体设置选项

配置关闭示例:

RTCEngine.leaveChannel()

用户加入频道开启音视频通话时
Android极速直播

必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、屏幕分辨率、IP 地址、网络接入方式和类型、加速度传感器信息(设备屏幕旋转方向);

权限:摄像头权限、麦克风权限

配置开启、关闭示例:

RTCEngine.setClientRole(int role, ClientRoleOptions options);

参数:

  • role:直播场景中用户角色
  • options:用户具体设置,包含用户级别,当 audienceLatencyLevel = AUDIENCE_LATENCY_LEVEL_LOW_LATENCY 时开启极速直播,否则就关闭极速直播
用户加入频道开启极速直播时
Android屏幕共享必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、屏幕分辨率、IP 地址、网络接入方式和类型、加速度传感器信息(设备屏幕旋转方向)

配置开始示例:

RTCEngine.startScreenCapture(ScreenCaptureParameters screenCaptureParameters);

参数:screenCaptureParameters:屏幕共享的编码参数配置

配置关闭示例:

RTCEngine.stopScreenCapture()

用户音视频互动时,将屏幕以视频方式分享给其他用户时
Android播放音乐文件必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、IP 地址、网络接入方式和类型

配置开启示例:

RTCEngine.startAudioMixing(String filePath, boolean loopback, int cycle, int startPos);

参数:

  • filePath:文件路径
  • loopback:是否只在本地播放音乐文件
  • cycle:音乐文件播放次数
  • startPos:音乐文件播放位置

配置关闭示例:

RTCEngine.stopAudioMixing()

用户加入频道后,在音视频互动时播放音乐文件时
iOS音视频互动

必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、屏幕分辨率、IP 地址、网络接入方式和类型、加速度传感器信息(设备屏幕旋转方向);

可选:频道内用户 ID;

权限:摄像头权限、麦克风权限

配置开启示例:

agoraKit.joinChannel(byToken: <#Your Token#>, channelId: <#Your Channel Name#>, uid: 0, mediaOptions: option)

参数:

  • byToken:在服务端生成的用于鉴权的动态密钥
  • channelId:频道名
  • uid:用户 ID,当 uid 为 0 时,服务端将动态给 uid 分配随机值,即不收集该信息
  • option:频道媒体设置选项

配置关闭示例:

agoraKit.leaveChannel()

用户加入频道开启音视频通话时
iOS极速直播

必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、屏幕分辨率、IP 地址、网络接入方式和类型、加速度传感器信息(设备屏幕旋转方向);

权限:摄像头权限、麦克风权限

配置开启、关闭示例:

agoraKit.setClientRole(role, options: options);

参数:

  • role:直播场景中的用户角色
  • options:用户具体设置,包含用户级别,当 audienceLatencyLevel = AUDIENCE_LATENCY_LEVEL_LOW_LATENCY 时开启极速直播,否则关闭极速直播
用户加入频道开启极速直播时
iOS屏幕共享必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、屏幕分辨率、IP 地址、网络接入方式和类型、加速度传感器信息(设备屏幕旋转方向)

配置开始示例:

agoraKit.startScreenCapture(screenParams);

参数:screenCaptureParameters:屏幕共享的编码参数配置

配置关闭示例: agoraKit.stopScreenCapture()

用户音视频互动时,将屏幕以视频方式分享给其他用户时
iOS播放音乐文件必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、IP 地址、网络接入方式和类型

配置开启示例:

agoraKit.startAudioMixing(filePath, loopback: loopback, replace: replace, cycle: cycle)

参数:

  • filePath:文件路径
  • loopback:是否只在本地播放音乐文件
  • cycle:音乐文件的播放次数
  • startPos:音乐文件的播放位置

配置关闭示例: agoraKit.stopAudioMixing();

用户加入频道后,在音视频互动时播放音乐文件时
HarmonyOS音视频互动

必要:设备品牌、设备型号、操作系统版本;

可选:频道内用户 ID;

权限:摄像头权限、麦克风权限、网络权限

配置开启示例:

RTCEngine.joinChannel(token:string, channelId:string, uid:number, options:ChannelMediaOptions);

参数:

  • token:在服务端生成的用于鉴权的动态密钥
  • channelId:频道名
  • uid:用户 ID,当 uid 为 0 时,服务端将动态给 uid 分配随机值,即不收集该信息
  • options:频道媒体设置选项

配置关闭示例:

RTCEngine.leaveChannel()

用户加入频道开启音视频通话时
HarmonyOS极速直播

必要:设备品牌、设备型号、操作系统版本;

权限:摄像头权限、麦克风权限、网络权限

配置开启、关闭示例:

RTCEngine.setClientRole(role:number,options:ClientRoleOptions);

参数:

  • role,直播场景中用户角色
  • options:用户具体设置,包含用户级别,当 audienceLatencyLevel = Constants.AudienceLatencyLevel.LOW_LATENCY 时开启极速直播,否则就关闭极速直播
用户加入频道开启极速直播时
HarmonyOS播放音乐文件必要:设备品牌、设备型号、操作系统版本

配置开启示例:

RTCEngine.startAudioMixing(filepath: string, loopback: boolean, cycle: number,startpos :number);

参数:

  • filePath:文件路径
  • loopback:是否只在本地播放音乐文件
  • cycle:音乐文件播放次数
  • startPos:音乐文件播放位置

配置关闭示例:

RTCEngine.stopAudioMixing()

用户加入频道后,在音视频互动时播放音乐文件时
表格内容超出当前宽度,可横向滚动查看更多列。

3. 配置可选个人信息

在基本功能的基础上,我司还提供了额外的扩展功能,例如云端录制、云端转码、对话式 AI 引擎、高级美颜。其涉及到可选个人信息收集,具体请参考下文。

个人信息名称处理目的使用场景处理方式
视频信息对视频进行录制或转码视频录制、视频转码场景、美颜场景

录制场景中视频信息处理完成后会传输至客户指定的存储地点,除非客户有存储需求我们不会做任何存储。

在转码场景中视频信息仅作转码处理,不会进行任何形式的存储。

在美颜场景中,我们不会收集任何个人信息,仅会在客户端本地使用部分面部特征值信息对视频中的人脸进行美颜处理,不会回传、储存或共享终端用户的任何面部特征值信息。

音频信息对音频内容进行转文本处理语音智能识别音频信息处理完成后即时删除,我们不会在服务器中留存;生成的文本在完成识别后即时删除,除非您开启了查错模式,我们不会在服务器中留存。
表格内容超出当前宽度,可横向滚动查看更多列。

由于扩展功能均需要您在声网控制台单独开通,并在配置中写入必要的参数方可启用。请您查阅以下文档理解扩展业务功能可选个人信息的具体调用方法并进行相应配置:

4. SDK 隐私政策披露要求与示例说明

请您根据集成视频 SDK 的实际情况,在您的 App 隐私政策中披露:第三方 SDK 名称、SDK 公司名称、SDK 使用目的和功能场景、SDK 涉及个人信息类型、实现 SDK 功能所需的权限、SDK 隐私政策链接。

请在您的 App 隐私政策中,以文字或列表的方式向公众披露第三方 SDK 的相关信息。

第三方 SDK 披露示例(仅供参考):

Android 示例

  • SDK 名称:视频 SDK
  • SDK 公司名称:上海声网科技有限公司
  • SDK 使用目的和功能场景:提供实时音视频通信服务,包括视频通话、互动直播、极速直播等
  • SDK 涉及的个人信息类型:
    • 必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、屏幕分辨率、IP 地址、网络接入方式和类型、加速度传感器信息(设备屏幕旋转方向)
    • 可选:频道内用户 ID
  • 实现 SDK 功能所需权限:摄像头、麦克风、麦克风设置、蓝牙连接、读取电话状态、访问网络、查看网络状态、查看 WiFi 状态
  • SDK 隐私政策链接:shengwang.cn/SDK-privacy-policy/

iOS 示例

  • SDK 名称:视频 SDK
  • SDK 公司名称:上海声网科技有限公司
  • SDK 使用目的和功能场景:提供实时音视频通信服务,包括视频通话、互动直播、极速直播等
  • SDK 涉及的个人信息类型:
    • 必要:设备品牌、设备型号、操作系统版本、CPU 信息、内存使用情况、电池电量信息、屏幕分辨率、IP 地址、加速度传感器信息(设备屏幕旋转方向)
    • 可选:频道内用户 ID
  • 实现 SDK 功能所需权限:摄像头、麦克风
  • SDK 隐私政策链接:shengwang.cn/SDK-privacy-policy/

HarmonyOS 示例

  • SDK 名称:视频 SDK
  • SDK 公司名称:上海声网科技有限公司
  • SDK 使用目的和功能场景:提供实时音视频通信服务,包括视频通话、互动直播、极速直播等
  • SDK 涉及的个人信息类型:
    • 必要:设备品牌、设备型号、操作系统版本、网络接入方式和类型、IP 地址
    • 可选:频道内的用户 ID
  • 实现 SDK 功能所需权限:摄像头、麦克风、访问网络、获取网络信息、后台运行
  • SDK 隐私政策链接:shengwang.cn/SDK-privacy-policy/

5. 最终用户同意方式的建议方式说明

App 首次运行时应当有隐私弹窗,隐私弹窗中应公示隐私政策内容并附完整隐私政策链接,并明确提示最终用户阅读并选择是否同意隐私政策;隐私弹窗应提供同意按钮和拒绝同意的按钮,并由最终用户主动选择。

App 取得敏感权限前,应通过隐私弹窗获得用户单独授权同意(如:麦克风权限、摄像头权限等)。

6. 最终用户行使权利的配置说明

开发者在其 App 中集成视频 SDK 后,SDK 的正常运行会收集和处理必要的最终用户的个人信息用于提供音视频目的。

SDK 提供以下接口配置,以便您帮助最终用户实现其个人信息权利的请求。在最终用户撤销同意处理其个人信息的授权时,您可以通过调用接口,停止和关闭 SDK 功能,并停止收集相应的用户数据。

App 开发者应根据相关法律法规为最终用户提供行使个人信息主体权利的路径功能,需要视频 SDK 配合的,请与 SDK 及时进行联系。

相关配置操作,请查阅相关配置文档:

7. 开发者合规注意事项

  • 在 App 隐私政策中清晰说明所集成 SDK 的名称、开发者名称、处理的个人信息类型、处理目的、处理方式和 SDK 隐私政策链接。
  • 在最终用户同意 App 隐私政策后,再初始化并调用相关 SDK。
  • 仅在实现业务功能所必需的场景下申请系统权限,并向最终用户说明权限用途。
  • 如你的 App 面向未成年人、教育、医疗、金融等特殊场景,请结合适用法律法规补充更严格的合规措施。

三、合规文件指引

  1. 《个人信息保护法》
  2. 《工业和信息化部关于开展信息通信服务感知提升行动的通知》
  3. 《工业和信息化部关于开展纵深推进 App 侵害用户权益专项整治行动的通知》
  4. 《工业和信息化部关于开展 App 侵害用户权益专项整治工作的通知》
  5. 《App 违法违规收集使用个人信息行为认定方法》
  6. 《App收集使用个人信息自评估指南》
  7. 《常见类型移动互联网应用程序必要个人信息范围规定》
  8. 《GB/T 35273-2020信息安全技术个人信息安全规范》
  9. 《网络安全标准实践指南—移动互联网应用程序(App)使用软件开发工具包(SDK)安全指引》

四、联系方式

我们设立了专门的个人信息保护团队和负责人,如果您和/或最终用户对本规则或个人信息保护相关事宜有疑问或投诉、建议时,可以通过以下方式与我们联系:privacy@shengwang.cn。

我们将尽快审核所涉问题,并在 15 个工作日或法律法规规定的期限内予以反馈。