From 4496ef7edb61d00d8182a57bfe5f7d16b435f4c8 Mon Sep 17 00:00:00 2001
From: linyinying
+
+**影响范围**:iOS 15.1.x 版本上的所有浏览器及内嵌 WebView 的应用。
+
+
+**问题描述**:在 iOS 15.1.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中,如果你调用 `createClient` 时将 `codec` 设为 `'h264'`,发送视频流后,页面会崩溃。
+
+
+**问题原因**:由 iOS 15.x 上 WebKit 视频编码功能回退,详见 [WebKit Bug Report](https://bugs.webkit.org/show_bug.cgi?id=231505)。
+
+
+**规避方案**:使用 VP8 进行视频编码。
+
+```javascript
+createClient({codec:'vp8', mode})
+```
+
+
+**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。
+
+**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器等)中,订阅远端音频流 `RemoteAudioTrack` 并播放后,有概率播放音频音量极低,且音频从听筒中而不是扬声器中播放出来。
+
+**问题原因**:未定位具体原因,由 iOS 15.x 版本中的音频功能回退导致,详见 [WebKit Bug Report](https://bugs.webkit.org/show_bug.cgi?id=230902)。
+
+
+**规避方案**:在 iOS 15.x 版本的浏览器中使用 `WebAudio` 进行音频播放并使用 `GainNode` 调整音量后,可以提高播放音量。Agora 建议你按照以下步骤规避该问题:
+1. 升级至 Web SDK 4.9.0 或以上版本。
+2. 设置 SDK 私有参数 `REMOTE_AUDIO_TRACK_USES_WEB_AUDIO` 为 `true`。SDK 内部会使用 `WebAudio` 播放远端音频流。示例代码如下:
+ ```javascript
+ function isIOS15(ua){
+ // 通过 UA 判断 iOS 版本是否为 15
+ }
+
+ if(isIOS15(navigator.userAgent)){
+ AgoraRTC.setParameter("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO", true);
+ }
+ ```
+
+
+**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。
+
+
+**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中,在 DOM 中播放视频流且在 `video` 元素或其父元素添加某些 CSS 属性(如 `transform`、`animation`)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。
+
+
+**问题原因**:未定位具体原因,由 iOS 15.x 版本中的视频渲染功能回退导致,详见 [WebKit Bug Report](https://bugs.webkit.org/show_bug.cgi?id=230902)。
+
+
+**规避方案**:升级至 Web SDK 4.x 最新版本,并且尽量减少对`video` 元素及其父元素的 CSS 属性的更改。
+
+
+**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。
+
+
+**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中,如果用户佩戴蓝牙耳机进行音频播放,音频有概率明显失真。
+
+
+**问题原因**:未定位具体原因,由 iOS 15.x 版本中的音频播放功能回退导致,详见 [WebKit Bug Report](https://bugs.webkit.org/show_bug.cgi?id=231422)。
+
+
+**规避方案**:无
+
+
+**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。
+
+
+**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中发送音频流,浏览器切换到后台后,音频流发送会中断。
+
+
+**问题原因**:由于 [WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=231105),浏览器切换至后台后,`WebAudio` 的 `AudioContext` 会停止音频处理。
+
+
+**规避方案**:参考以下步骤规避此问题:
+1. 升级至 Web SDK 4.7.3 或之后版本。
+2. 在调用 `createMicrophoneAudioTrack` 创建音频轨道时,将`bypassWebAudio` 参数设为 `true`,本地音频流会不绕过 `WebAudio` 处理直接发布。
+
+ ```javascript
+ const localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack({bypassWebAudio: true});
+ ```
+
+> 注意:此方案会导致混音功能(`MixingAudioTrack`)失效。
+
+
+**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。
+
+
+**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中播放音视频,如果被其它语音或视频通话应用、Siri 呼叫、闹钟等打断,音视频播放有概率无法自动恢复。
+
+
+**问题原因**:音视频播放被打断后,DOM `video` 元素和 `audio` 元素的状态变为 `paused`。打断结束后,元素状态无法自动切换回 `playing`,且调用`HTMLMediaElement.play` 方法也无法恢复媒体的播放。详见 [WebKit issue 232599](https://bugs.webkit.org/show_bug.cgi?id=232599) 和[WebKit issue 226698](https://bugs.webkit.org/show_bug.cgi?id=226698)。
+
+
+**规避方案**:升级至 Web SDK 4.x 最新版本。SDK 会尝试在打断事件后恢复媒体流的播放。
+ 以下为没有 WebKit 记录的历史问题:
+
+- iOS 13 和 14 上可能出现远端用户音量随机变化的问题。
+- 切换前置、后置摄像头后采集画面可能会瞬间旋转。
+- 语音路由随机切换,即可能出现插着耳机但是仍然从扬声器出声,或者没有耳机却从听筒出声的情况。
+- 连续两次调用 `getUserMedia` 获取相同媒体类型的轨道,第一次获取的媒体轨道会静音或黑屏。
+- 使用过其他使用音视频输入设备的 app 后(例如 Siri 或者 Skype 通话),无法采集本地音频或视频。
+
+
+**影响范围**:
+
+
+**问题描述**:
+
+
+**问题原因**:
+
+
+**规避方案**:
+
+
+**影响范围**:
+
+
+**问题描述**:
+
+
+**问题原因**:
+
+
+**规避方案**:
+
+
+**影响范围**:
+
+
+**问题描述**:
+
+
+**问题原因**:
+
+
+**规避方案**:
+
+
+**影响范围**:
+
+
+**问题描述**:
+
+
+**问题原因**:
+
+
+**规避方案**:
+
+
+**影响范围**:
+
+
+**问题描述**:
+
+
+**问题原因**:
+
+
+**规避方案**:
+iOS 15.1.x: 使用 H.264 编码发送视频流导致页面奔溃
+iOS 15.x: 本地用户听到的远端音频流的音量极低
+iOS 15.x: 视频播放有概率出现黑屏
+iOS 15.x: 用户佩戴蓝牙耳机后,播放的音频有概率明显失真。
+iOS 15.x: 浏览器切换到后台后,音频流发送会中断
+iOS 15.x: 被其它语音或视频通话应用、Siri 呼叫、闹钟等打断后,音视频播放有概率无法自动恢复
+更多已知问题
+
+
+
+
+
+
-**问题原因**:由 iOS 15.x 上 WebKit 视频编码功能回退,详见 [WebKit Bug Report](https://bugs.webkit.org/show_bug.cgi?id=231505)。 +**问题原因**:由 iOS 15.x 上 WebKit 视频编码功能回退,详见 [WebKit Bug 231505](https://bugs.webkit.org/show_bug.cgi?id=231505)。
@@ -40,7 +40,7 @@ createClient({codec:'vp8', mode}) **问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器等)中,订阅远端音频流 `RemoteAudioTrack` 并播放后,有概率播放音频音量极低,且音频从听筒中而不是扬声器中播放出来。
-**问题原因**:未定位具体原因,由 iOS 15.x 版本中的音频功能回退导致,详见 [WebKit Bug Report](https://bugs.webkit.org/show_bug.cgi?id=230902)。 +**问题原因**:未定位具体原因,由 iOS 15.x 版本中的音频功能回退导致,详见 [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902)。
@@ -71,7 +71,7 @@ createClient({codec:'vp8', mode})
-**问题原因**:未定位具体原因,由 iOS 15.x 版本中的视频渲染功能回退导致,详见 [WebKit Bug Report](https://bugs.webkit.org/show_bug.cgi?id=230902)。 +**问题原因**:未定位具体原因,由 iOS 15.x 版本中的视频渲染功能回退导致,详见 [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902)。
@@ -81,7 +81,7 @@ createClient({codec:'vp8', mode})
**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。
@@ -124,7 +124,7 @@ createClient({codec:'vp8', mode})
const localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack({bypassWebAudio: true});
```
-> 注意:此方案会导致混音功能(`MixingAudioTrack`)失效。
+ > 注意:此方案会导致混音功能(`MixingAudioTrack`)失效。
以下为没有 WebKit 记录的历史问题:
- iOS 13 和 14 上可能出现远端用户音量随机变化的问题。
@@ -162,179 +162,175 @@ createClient({codec:'vp8', mode})
### Android
-Android 12中使用硬件进行WebRTC视频编码,会导致视频花屏
-
- - 详情:在Android 12的部分设备中,Chrome浏览器或Chromium内核浏览器如默认开启WebRTC `H264`、`VP8`的视频硬件编码,会导致编码后的视频花屏
- - 影响范围:安装Android 12系统的Android设备
- - 原因:Chromium WebRTC模块视频编码回退[chromium issue](https://bugs.chromium.org/p/chromium/issues/detail?id=1237677)
- - 规避方案:引导使用Android 12的客户,在Chrome浏览器中的`Chrome://flags`配置页面中,关闭WebRTC视频硬件编码的相关配置。(Chrome 97版本有计划修复该问题)
-
-
-**影响范围**:
-
-**问题描述**:
+**问题描述**:在部分安装了 Android 12 的设备(如 Pixel 3 和 Pixel 4)上使用 Chrome 浏览器或 Chromium 内核浏览器,如果默认开启 WebRTC `H264` 或 `VP8` 视频硬件编码,可能会导致花屏。
-**问题原因**:
+**问题原因**:由 Chromium WebRTC 模块视频编码回退导致,详见 [Chromium issue 1237677](https://bugs.chromium.org/p/chromium/issues/detail?id=1237677)。
-**规避方案**:
+**规避方案**:引导使用 Android 12 的客户在 Chrome 浏览器中打开 `Chrome://flags` 配置页面,关闭 WebRTC 视频硬件编码相关配置。Chrome 计划在 97 版本中修复该问题。
-**影响范围**:
+**影响范围**:部分 Android 设备,包括部分小米及 One Plus 手机。
-**问题描述**:
+**问题描述**:在部分Android设备中,使用Chrome浏览器或Chromium内核浏览器,视频发送码率无法达到Web SDK的预设值
-**问题原因**:
+**问题原因**:可能是因为硬件编码导致特定视频编码帧率下,编码码率无法达到预设值
-**规避方案**:
+**规避方案**:目前发现大部分情况下使用15fps进行视频编码会导致码率过低,而使用30fps则情况较好。因此在遇到此问题时,我们推荐使用30fps进行视频编码测试问题是否可以解决
-**影响范围**:
+**影响范围**:使用Chromium 89内核的微信浏览器
-**问题描述**:
+**问题描述**:在微信浏览器中,视频无法自动播放;且当通过用户手势(点击、触摸)恢复自动播放后,下一次的视频播放仍然无法自动播放
-**问题原因**:
+**问题原因**:可能是微信浏览器对浏览器自动播放的行为处理有异常,导致与其他浏览器的媒体自动播放行为不一致
-**规避方案**:
+**规避方案**:推荐升级到最新的Web SDK NG版本,并且监听`AgoraRTC.onAutoplayFailed`事件,在此事件中,引导用户点击页面,恢复播放:
+
+ ```javascript
+ AgoraRTC.onAutoplayFailed = ()=>{
+ document.alert('请点击页面后恢复播放');
+ }
+ ```
-**影响范围**:
+**影响范围**:具体影响范围未知,但包括部分小米及One Plus手机
-**问题描述**:
+**问题描述**:在佩戴蓝牙耳机时,当在通话过程中通过蓝牙耳机采集本地音频,发送音频流后,有概率会导致无法收听到远端媒体流
-**问题原因**:
+**问题原因**:明确原因仍未知,但猜测可能是Chromium在蓝牙设备的profile切换后产生的音频异常
-**规避方案**:
+**规避方案**:暂无
-**影响范围**:
-
-
-**问题描述**:
+- 在**搭载联发科芯片的设备**上无法使用 H.264 编码在Chrome浏览器中发送视频流
+- 在 Android Chrome 88 以下版本,搭载**华为海思麒麟芯片**的设备无法使用 H.264 编码发送视频流
+- 在**OnePlus 6**使用Chrome 浏览器接收远端视频流期间熄灭屏幕,可能会导致视频流冻结
+
-**规避方案**:
+其他一些我们收到客户反馈,或者在研发过程中发现的,但并没有相关Chromium issue记录的历史问题包括:
+- 在部分 Android 设备上可能无法获取到媒体设备的 device label
+- 在部分 Android 设备上音视频流被系统电话呼叫或其他语音和视频通话应用打断,可能会导致 track-ended,需要重新采集音视频
+- 在 Android Chrome 上无法使用 H.264 编码发送大小流
- - 规避方案:推荐升级到最新的Web SDK NG版本,并且监听`AgoraRTC.onAutoplayFailed`事件,在此事件中,引导用户点击页面,恢复播放:
+原因:iOS Safari 及 WebView 不支持 `mediaDevices.getDisplayMedia` 接口。
+
-- 使用蓝牙耳机,开始发送音频流后,无法听到远端音频
+原因:iOS Safari 及 WebView 对 WebGL 支持不佳,且 iOS 设备在进行美颜算法处理时性能消耗过大。
+
-
+原因:iOS 上 `WebAudio` 不支持实现该方法。
+
-- 在**搭载联发科芯片的设备**上无法使用 H.264 编码在Chrome浏览器中发送视频流
-- 在 Android Chrome 88 以下版本,搭载**华为海思麒麟芯片**的设备无法使用 H.264 编码发送视频流
-- 在**OnePlus 6**使用Chrome 浏览器接收远端视频流期间熄灭屏幕,可能会导致视频流冻结
+原因:Web SDK 使用 H.264 baseline profile 进行协商,iOS 上不支持编码发送 1080p 及以上分辨率的视频流。
+
+原因:iOS Safari 及 WebView 中 `RTCRTPSender.setParameters` 方法无法指定帧率,通过 `scaleResolutionDownBy` 属性进行分辨率压缩后,小流分辨率与大流成固定比率。
+
-- 在部分 Android 设备上可能无法获取到媒体设备的 device label
-- 在部分 Android 设备上音视频流被系统电话呼叫或其他语音和视频通话应用打断,可能会导致 track-ended,需要重新采集音视频
-- 在 Android Chrome 上无法使用 H.264 编码发送大小流
+原因:iOS 上无法通过 WebRTC 的 `getStats` 方法计算出 `encodeDelay`。
+
-- 不支持调用 `createScreenVideoTrack` 进行屏幕共享
- - 原因:iOS Safari及WebView未实现`mediaDevices.getDisplayMedia`接口
-- 不支持调用 `setBeautyEffect` 开启美颜
- - 原因:iOS Safari及WebView对WebGL支持不佳,且iOS设备在进行美颜算法处理时性能消耗过于巨大
-- 不支持 `IBufferSourceAudioTrack.seekAudioBuffer` 方法
- - 原因:在iOS上`WebAudio`不支持实现该方法
-- 无法使用 H.264 编码发送 1080p 及以上分辨率的视频流
- - 原因:目前使用H264 baseline profile进行协商,在iOS上不支持编码发送1080p及以上分辨率
-- 发送小流时,不支持设置 `LowStreamParameter.bitrate`,且小流分辨率需要与大流分辨率成比例
- - 原因:iOS Safari及WebView中`RTCRTPSender.setParameters`方法无法指定帧率,通过`scaleResolutionDownBy`属性进行分辨率压缩后,小流分辨率与大流成固定比率
-- 不支持获取 `encodeDelay`
- - 原因:在iOS上无法通过WebRTC `getStats`API计算的到此结果
+原因:移动端浏览器及 WebView 未实现 `mediaDevices.getDisplayMedia` 接口。
+
-- 不支持调用 `createScreenVideoTrack` 进行屏幕共享
- - 原因:移动端浏览器及WebView未实现`mediaDevices.getDisplayMedia`接口
-- 不支持调用 `setBeautyEffect` 开启美颜
- - 原因:移动端设备在进行美颜算法处理时性能消耗过于巨大
\ No newline at end of file
+原因:移动端设备在进行美颜算法处理时性能消耗过大。
+
-**影响范围**:iOS 15.1.x 版本上的所有浏览器及内嵌 WebView 的应用。
+**影响范围**:iOS 15.1.x 上的所有浏览器及内嵌 WebView 的应用。
-**问题描述**:在 iOS 15.1.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中,如果你调用 `createClient` 时将 `codec` 设为 `'h264'`,发送视频流后,页面会崩溃。
+**问题描述**:在 iOS 15.1.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,如果你调用 `createClient` 时将 `codec` 设为 `'h264'`,发送视频流后,页面会崩溃。
-**问题原因**:由 iOS 15.x 上 WebKit 视频编码功能回退,详见 [WebKit Bug 231505](https://bugs.webkit.org/show_bug.cgi?id=231505)。
+**问题原因**:该问题是由 iOS 15.x 上 WebKit 视频编码功能回退导致,详见 [WebKit Bug 231505](https://bugs.webkit.org/show_bug.cgi?id=231505)。
@@ -31,20 +31,20 @@ createClient({codec:'vp8', mode})
-**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。iOS 15.x: 用户佩戴蓝牙耳机后,播放的音频有概率明显失真。
+iOS 15.x: 用户佩戴蓝牙耳机后,播放的音频有概率明显失真
更多已知问题
+其他历史已知问题
-
Android 12: 使用 WebRTC 视频硬件编码可能会导致花屏
+
在 Chrome 浏览器上发送视频流,码率无法达到预设值
+
微信浏览器中视频无法自动播放
+
使用蓝牙耳机,开始发送音频流后,无法听到远端音频
+
某些 Android 机型特有的已知问题
其他历史已知问题
不支持调用
+createScreenVideoTrack
进行屏幕共享不支持调用
+setBeautyEffect
开启美颜不支持
+IBufferSourceAudioTrack.seekAudioBuffer
方法无法使用 H.264 编码发送 1080p 及以上分辨率的视频流
+发送小流时,不支持设置
+LowStreamParameter.bitrate
,且小流分辨率需要与大流分辨率成比例不支持获取
+encodeDelay
不支持调用
+createScreenVideoTrack
进行屏幕共享不支持调用
+setBeautyEffect
开启美颜iOS 15.1.x: 使用 H.264 编码发送视频流导致页面奔溃
iOS 15.x: 本地用户听到的远端音频流的音量极低
+iOS 15.x: 本地用户听到远端音频流的音量极低
-**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器等)中,订阅远端音频流 `RemoteAudioTrack` 并播放后,有概率播放音频音量极低,且音频从听筒中而不是扬声器中播放出来。
+**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,订阅并播放远端音频轨道 `RemoteAudioTrack` 后,播放音量有概率极低,且音频从听筒中而不是扬声器中播放出来。-**问题原因**:未定位具体原因,由 iOS 15.x 版本中的音频功能回退导致,详见 [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902)。 +**问题原因**:该问题是由 iOS 15.x 上 WebKit 音频功能回退导致,详见 [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902)。
-**规避方案**:在 iOS 15.x 版本的浏览器中使用 `WebAudio` 进行音频播放并使用 `GainNode` 调整音量后,可以提高播放音量。Agora 建议你按照以下步骤规避该问题: +**规避方案**:在 iOS 15.x 上使用 `WebAudio` 进行音频播放并使用 `GainNode` 调整音量后,可以提高播放音量。Agora 建议你按照以下步骤规避该问题: 1. 升级至 Web SDK 4.9.0 或以上版本。 2. 设置 SDK 私有参数 `REMOTE_AUDIO_TRACK_USES_WEB_AUDIO` 为 `true`。SDK 内部会使用 `WebAudio` 播放远端音频流。示例代码如下: ```javascript @@ -55,70 +55,70 @@ createClient({codec:'vp8', mode}) if(isIOS15(navigator.userAgent)){ AgoraRTC.setParameter("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO", true); } - ``` + ```
-**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。
-**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中,在 DOM 中播放视频流且在 `video` 元素或其父元素添加某些 CSS 属性(如 `transform`、`animation`)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。 +**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,在 DOM 中播放视频且在 `video` 元素或其父元素添加某些 CSS 属性(如 `transform`、`animation`)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。
-**问题原因**:未定位具体原因,由 iOS 15.x 版本中的视频渲染功能回退导致,详见 [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902)。 +**问题原因**:该问题是由 iOS 15.x 上 WebKit 视频渲染功能回退导致,详见 [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902)。
-**规避方案**:升级至 Web SDK 4.x 最新版本,并且尽量减少对`video` 元素及其父元素的 CSS 属性的更改。 +**规避方案**:升级至 Web SDK 4.x 最新版本,并且尽量减少更改 `video` 元素及其父元素的 CSS 属性。
-**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。
-**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中,如果用户佩戴蓝牙耳机进行音频播放,音频有概率明显失真。 +**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,如果用户佩戴蓝牙耳机进行音频播放,音频有概率明显失真。
-**问题原因**:未定位具体原因,由 iOS 15.x 版本中的音频播放功能回退导致,详见 [WebKit Bug Report](https://bugs.webkit.org/show_bug.cgi?id=231422)。 +**问题原因**:该问题是由 iOS 15.x 上 WebKit 音频播放功能回退导致,详见 [WebKit Bug 231422](https://bugs.webkit.org/show_bug.cgi?id=231422)。
-**规避方案**:无 +**规避方案**:暂无
-**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。
-**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中发送音频流,浏览器切换到后台后,音频流发送会中断。 +**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中发送音频流,浏览器或应用切换到后台后,音频流发送会中断。
-**问题原因**:由于 [WebKit bug](https://bugs.webkit.org/show_bug.cgi?id=231105),浏览器切换至后台后,`WebAudio` 的 `AudioContext` 会停止音频处理。 +**问题原因**:由于 WebKit 的 [bug](https://bugs.webkit.org/show_bug.cgi?id=231105),浏览器切换至后台后,`WebAudio` 的 `AudioContext` 会停止音频处理。
**规避方案**:参考以下步骤规避此问题:
1. 升级至 Web SDK 4.7.3 或之后版本。
-2. 在调用 `createMicrophoneAudioTrack` 创建音频轨道时,将`bypassWebAudio` 参数设为 `true`,本地音频流会不绕过 `WebAudio` 处理直接发布。
+2. 调用 `createMicrophoneAudioTrack` 创建音频轨道时,将`bypassWebAudio` 参数设为 `true`,本地音频流会不经由 `WebAudio` 处理直接发布。
```javascript
const localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack({bypassWebAudio: true});
@@ -132,19 +132,19 @@ createClient({codec:'vp8', mode})
iOS 15.x: 被其它语音或视频通话应用、Siri 呼叫、闹钟等打断后,音视频播放有概率无法自动恢复
-**影响范围**:iOS 15.x 版本上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。
-**问题描述**:在 iOS 15.x 版本上的 Safari 浏览器和内嵌 WkWebView 的应用(微信浏览器和 Chrome 浏览器等)中播放音视频,如果被其它语音或视频通话应用、Siri 呼叫、闹钟等打断,音视频播放有概率无法自动恢复。 +**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中播放音视频,如果被其它语音或视频通话应用、Siri 呼叫、闹钟等打断,音视频播放有概率无法自动恢复。
-**问题原因**:音视频播放被打断后,DOM `video` 元素和 `audio` 元素的状态变为 `paused`。打断结束后,元素状态无法自动切换回 `playing`,且调用`HTMLMediaElement.play` 方法也无法恢复媒体的播放。详见 [WebKit issue 232599](https://bugs.webkit.org/show_bug.cgi?id=232599) 和[WebKit issue 226698](https://bugs.webkit.org/show_bug.cgi?id=226698)。 +**问题原因**:音视频播放被打断后,DOM `video` 元素和 `audio` 元素的状态变为 `paused`。打断结束后,状态无法自动切回 `playing`,且调用`HTMLMediaElement.play` 方法也无法恢复媒体的播放。详见 [WebKit bug 232599](https://bugs.webkit.org/show_bug.cgi?id=232599) 和[WebKit bug 226698](https://bugs.webkit.org/show_bug.cgi?id=226698)。
-**规避方案**:升级至 Web SDK 4.x 最新版本。SDK 会尝试在打断事件后恢复媒体流的播放。 +**规避方案**:升级至 Web SDK 4.x 最新版本。SDK 会尝试在打断事件后恢复媒体播放。
-**问题原因**:由 Chromium WebRTC 模块视频编码回退导致,详见 [Chromium issue 1237677](https://bugs.chromium.org/p/chromium/issues/detail?id=1237677)。 +**问题原因**:该问题是由 Chromium WebRTC 模块视频编码回退导致,详见 [Chromium issue 1237677](https://bugs.chromium.org/p/chromium/issues/detail?id=1237677)。
@@ -179,14 +179,14 @@ createClient({codec:'vp8', mode})
**影响范围**:部分 Android 设备,包括部分小米及 One Plus 手机。
-**问题描述**:在部分Android设备中,使用Chrome浏览器或Chromium内核浏览器,视频发送码率无法达到Web SDK的预设值
+**问题描述**:在部分 Android 设备上使用 Chrome 浏览器或 Chromium 内核浏览器,视频发送码率无法达到 Web SDK 的预设值。
@@ -194,7 +194,7 @@ createClient({codec:'vp8', mode})
-**规避方案**:目前发现大部分情况下使用15fps进行视频编码会导致码率过低,而使用30fps则情况较好。因此在遇到此问题时,我们推荐使用30fps进行视频编码测试问题是否可以解决
+**规避方案**:目前发现大部分情况下使用15fps进行视频编码会导致码率过低,而使用30fps则情况较好。因此在遇到此问题时,我们推荐使用30fps进行视频编码测试问题是否可以解决。
在 Chrome 浏览器上发送视频流,码率无法达到预设值
+Chrome 浏览器上发送视频流,码率无法达到预设值
-**影响范围**:使用Chromium 89内核的微信浏览器 +**影响范围**:使用 Chromium 89 内核的微信浏览器
-**问题描述**:在微信浏览器中,视频无法自动播放;且当通过用户手势(点击、触摸)恢复自动播放后,下一次的视频播放仍然无法自动播放 +**问题描述**:视频无法自动播放,并且当通过用户手势(点击、触摸)恢复自动播放后,下一次的视频播放仍然无法自动播放。
@@ -214,25 +214,27 @@ createClient({codec:'vp8', mode})
-**规避方案**:推荐升级到最新的Web SDK NG版本,并且监听`AgoraRTC.onAutoplayFailed`事件,在此事件中,引导用户点击页面,恢复播放: +**规避方案**:参考以下步骤规避此问题: +1. 升级至 Web SDK 4.x 最新版本。 +2. 监听 `AgoraRTC.onAutoplayFailed` 事件。在此事件中,引导用户点击页面,恢复播放: ```javascript AgoraRTC.onAutoplayFailed = ()=>{ - document.alert('请点击页面后恢复播放'); + document.alert('请点击页面后恢复播放'); } ```
-**影响范围**:具体影响范围未知,但包括部分小米及One Plus手机 +**影响范围**:部分小米及 One Plus 手机
-**问题描述**:在佩戴蓝牙耳机时,当在通话过程中通过蓝牙耳机采集本地音频,发送音频流后,有概率会导致无法收听到远端媒体流 +**问题描述**:如果本地用户佩戴蓝牙耳机,在通话过程中通过蓝牙耳机采集本地音频且发送音频流后,有概率会导致无法收听到远端媒体流。
@@ -297,7 +299,7 @@ createClient({codec:'vp8', mode})
无法使用 H.264 编码发送 1080p 及以上分辨率的视频流
-原因:Web SDK 使用 H.264 baseline profile 进行协商,iOS 上不支持编码发送 1080p 及以上分辨率的视频流。 +原因:Web SDK 使用 H.264 Baseline Profile 进行协商,iOS 上不支持编码发送 1080p 及以上分辨率的视频流。
encodeDelay
-原因:iOS 上无法通过 WebRTC 的 `getStats` 方法计算出 `encodeDelay`。 +原因:iOS 上无法通过 WebRTC 的 `getStats` 接口计算出 `encodeDelay`。
From 89d8c56f3cb4c885cedce028beab04f1993c5e7e Mon Sep 17 00:00:00 2001 From: linyinying-**影响范围**:iOS 15.1.x 上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.1.x 上的所有浏览器及内嵌 WkWebView 的应用。
@@ -34,7 +34,7 @@ createClient({codec:'vp8', mode})
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。
+**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,订阅并播放远端音频轨道 `RemoteAudioTrack` 后,播放音量有概率极低,且音频从听筒中而不是扬声器中播放出来。
@@ -63,7 +63,7 @@ createClient({codec:'vp8', mode})-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。
@@ -84,7 +84,7 @@ createClient({codec:'vp8', mode})
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。
@@ -104,7 +104,7 @@ createClient({codec:'vp8', mode})
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。
@@ -132,7 +132,7 @@ createClient({codec:'vp8', mode})
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。
@@ -164,9 +164,14 @@ createClient({codec:'vp8', mode})
-**问题描述**:在部分安装了 Android 12 的设备(如 Pixel 3 和 Pixel 4)上使用 Chrome 浏览器或 Chromium 内核浏览器,如果默认开启 WebRTC `H264` 或 `VP8` 视频硬件编码,可能会导致花屏。
+**影响范围**:部分安装了 Android 12 的设备,如 Pixel 3 和 Pixel 4。
+
+
+**问题描述**:Android 12 上使用 Chrome 浏览器或 Chromium 内核浏览器,如果默认开启 WebRTC `H264` 或 `VP8` 视频硬件编码,可能会导致花屏。
@@ -182,19 +187,19 @@ createClient({codec:'vp8', mode})
-**影响范围**:部分 Android 设备,包括部分小米及 One Plus 手机。
+**影响范围**:部分 Android 设备,如部分小米及 One Plus 机型。
-**问题描述**:在部分 Android 设备上使用 Chrome 浏览器或 Chromium 内核浏览器,视频发送码率无法达到 Web SDK 的预设值。
+**问题描述**:在 Chrome 浏览器或 Chromium 内核浏览器上视频发送码率无法达到 Web SDK 的预设值。
-**问题原因**:可能是因为硬件编码导致特定视频编码帧率下,编码码率无法达到预设值
+**问题原因**:可能是因为硬件编码导致特定视频编码帧率时码率无法达到预设值。
-**规避方案**:目前发现大部分情况下使用15fps进行视频编码会导致码率过低,而使用30fps则情况较好。因此在遇到此问题时,我们推荐使用30fps进行视频编码测试问题是否可以解决。
+**规避方案**:大部分情况下,视频编码帧率为 15 fps 时,码率会过低,而帧率为 30 fps 时码率则相对较高。因此 Agora 建议遇到码率问题时,尝试将帧率设为 30 fps。
Android 12: 使用 WebRTC 视频硬件编码可能会导致花屏
+
Chrome 浏览器上发送视频流,码率无法达到预设值
-**问题原因**:可能是微信浏览器对浏览器自动播放的行为处理有异常,导致与其他浏览器的媒体自动播放行为不一致 +**问题原因**:可能是微信浏览器对自动播放的行为处理有异常,与其他浏览器的行为不一致。
@@ -227,18 +232,18 @@ createClient({codec:'vp8', mode})
-**影响范围**:部分小米及 One Plus 手机
+**影响范围**:部分小米及 One Plus 机型
-**问题描述**:如果本地用户佩戴蓝牙耳机,在通话过程中通过蓝牙耳机采集本地音频且发送音频流后,有概率会导致无法收听到远端媒体流。
+**问题描述**:如果本地用户佩戴蓝牙耳机,在通话过程中通过蓝牙耳机采集本地音频且发送音频流后,有概率会无法收听到远端用户的声音。
-**问题原因**:明确原因仍未知,但猜测可能是Chromium在蓝牙设备的profile切换后产生的音频异常
+**问题原因**:可能是由于 Chromium 在蓝牙设备的 profile 切换后会产生音频异常。
@@ -247,23 +252,21 @@ createClient({codec:'vp8', mode})
-- 在**搭载联发科芯片的设备**上无法使用 H.264 编码在Chrome浏览器中发送视频流
-- 在 Android Chrome 88 以下版本,搭载**华为海思麒麟芯片**的设备无法使用 H.264 编码发送视频流
-- 在**OnePlus 6**使用Chrome 浏览器接收远端视频流期间熄灭屏幕,可能会导致视频流冻结
+- 在搭载**联发科芯片**的设备上无法使用 H.264 编码在 Chrome 浏览器中发送视频流。
+- 在搭载**华为海思麒麟芯片**的设备上,Android Chrome 88 以下版本上,无法使用 H.264 编码发送视频流。
+- 在**OnePlus 6**上使用 Chrome 浏览器接收远端视频流期间熄灭屏幕,可能会导致视频流冻结。
-
-其他一些我们收到客户反馈,或者在研发过程中发现的,但并没有相关Chromium issue记录的历史问题包括:
-- 在部分 Android 设备上可能无法获取到媒体设备的 device label
-- 在部分 Android 设备上音视频流被系统电话呼叫或其他语音和视频通话应用打断,可能会导致 track-ended,需要重新采集音视频
-- 在 Android Chrome 上无法使用 H.264 编码发送大小流
+- 在部分 Android 设备上可能无法获取到媒体设备的 device label。
+- 在部分 Android 设备上音视频流被系统电话呼叫或其他语音和视频通话应用打断,可能会导致 track-ended,需要重新采集音视频。
+- 在 Android Chrome 上无法使用 H.264 编码发送大小流。
如果本地用户佩戴蓝牙耳机,开始发送音频流后就无法听到远端音频
+本地用户佩戴蓝牙耳机,开始发送音频流后就无法听到远端音频
某些 Android 机型特有的已知问题
+某些 Android 机型特有的问题
其他历史已知问题
createScreenVideoTrack
进行屏幕共享
-原因:iOS Safari 及 WebView 不支持 `mediaDevices.getDisplayMedia` 接口。 +原因:iOS Safari 及 WkWebView 不支持 `mediaDevices.getDisplayMedia` 接口。
@@ -283,7 +286,7 @@ createClient({codec:'vp8', mode})setBeautyEffect
开启美颜-原因:iOS Safari 及 WebView 对 WebGL 支持不佳,且 iOS 设备在进行美颜算法处理时性能消耗过大。 +原因:iOS Safari 及 WkWebView 对 WebGL 支持不佳,且 iOS 设备在进行美颜算法处理时性能消耗过大。
@@ -299,7 +302,7 @@ createClient({codec:'vp8', mode})-原因:Web SDK 使用 H.264 Baseline Profile 进行协商,iOS 上不支持编码发送 1080p 及以上分辨率的视频流。 +原因:Web SDK 使用 H.264 Baseline Profile 进行协商,因此 iOS 上不支持编码发送 1080p 及以上分辨率的视频流。
@@ -307,7 +310,7 @@ createClient({codec:'vp8', mode})LowStreamParameter.bitrate
,且小流分辨率需要与大流分辨率成比例-原因:iOS Safari 及 WebView 中 `RTCRTPSender.setParameters` 方法无法指定帧率,通过 `scaleResolutionDownBy` 属性进行分辨率压缩后,小流分辨率与大流成固定比率。 +原因:iOS Safari 及 WkWebView 中 `RTCRTPSender.setParameters` 方法无法指定帧率,通过 `scaleResolutionDownBy` 属性进行分辨率压缩后,小流分辨率与大流成固定比率。
@@ -325,7 +328,7 @@ createClient({codec:'vp8', mode})createScreenVideoTrack
进行屏幕共享-原因:移动端浏览器及 WebView 未实现 `mediaDevices.getDisplayMedia` 接口。 +原因:移动端浏览器及 WkWebView 未实现 `mediaDevices.getDisplayMedia` 接口。
From a62b567b9a9dfa5cf52fb65d2d69927de242cc84 Mon Sep 17 00:00:00 2001 From: linyinying以下为没有 WebKit 记录的历史问题: +
- iOS 13 和 14 上可能出现远端用户音量随机变化的问题。
- 切换前置、后置摄像头后采集画面可能会瞬间旋转。
@@ -264,6 +264,7 @@ createClient({codec:'vp8', mode})
+
- 在部分 Android 设备上可能无法获取到媒体设备的 device label。
- 在部分 Android 设备上音视频流被系统电话呼叫或其他语音和视频通话应用打断,可能会导致 track-ended,需要重新采集音视频。
- 在 Android Chrome 上无法使用 H.264 编码发送大小流。
From ea61b9c6d1bceb2e4991ae9518d4b6899f585e0d Mon Sep 17 00:00:00 2001
From: linyinying
-**影响范围**:iOS 15.1.x 上的所有浏览器及内嵌 WkWebView 的应用。
+**影响范围**:iOS 15.1.x 上的所有浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)。
-**问题描述**:在 iOS 15.1.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,如果你调用 `createClient` 时将 `codec` 设为 `'h264'`,发送视频流后,页面会崩溃。
+**问题描述**:在 iOS 15.1.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中,如果你调用 `createClient` 时将 `codec` 设为 `'h264'`,发送视频流后,页面会崩溃。
@@ -34,10 +34,10 @@ createClient({codec:'vp8', mode})
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,订阅并播放远端音频轨道 `RemoteAudioTrack` 后,播放音量有概率极低,且音频从听筒中而不是扬声器中播放出来。其他历史已知问题
iOS 15.1.x: 使用 H.264 编码发送视频流导致页面奔溃
iOS 15.x: 本地用户听到远端音频流的音量极低
**问题原因**:该问题是由 iOS 15.x 上 WebKit 音频功能回退导致,详见 [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902)。
@@ -63,11 +63,11 @@ createClient({codec:'vp8', mode})
iOS 15.x: 播放视频有概率出现黑屏
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)。
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,在 DOM 中播放视频且在 `video` 元素或其父元素添加某些 CSS 属性(如 `transform`、`animation`)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。 +**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中,在 DOM 中播放视频且在 `video` 元素或其父元素添加某些 CSS 属性(如 `transform`、`animation`)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。
@@ -84,11 +84,11 @@ createClient({codec:'vp8', mode})
iOS 15.x: 用户佩戴蓝牙耳机后,播放音频有概率明显失真
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)。
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中,如果用户佩戴蓝牙耳机进行音频播放,音频有概率明显失真。 +**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中,如果用户佩戴蓝牙耳机进行音频播放,音频有概率明显失真。
@@ -104,11 +104,11 @@ createClient({codec:'vp8', mode})
iOS 15.x: 浏览器切换到后台后,音频流发送中断
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)。
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中发送音频流,浏览器或应用切换到后台后,音频流发送会中断。 +**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中发送音频流,浏览器或应用切换到后台后,音频流发送会中断。
@@ -132,11 +132,11 @@ createClient({codec:'vp8', mode})
iOS 15.x: 被其它语音或视频通话应用、Siri 呼叫、闹钟等打断后,音视频播放有概率无法自动恢复
-**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用。 +**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)。
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)中播放音视频,如果被其它语音或视频通话应用、Siri 呼叫、闹钟等打断,音视频播放有概率无法自动恢复。 +**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中播放音视频,如果被其它语音或视频通话应用、Siri 呼叫、闹钟等打断,音视频播放有概率无法自动恢复。
@@ -171,7 +171,7 @@ createClient({codec:'vp8', mode})
-**问题描述**:Android 12 上使用 Chrome 浏览器或 Chromium 内核浏览器,如果默认开启 WebRTC `H264` 或 `VP8` 视频硬件编码,可能会导致花屏。 +**问题描述**:在 Android 12 上使用 Chrome 浏览器或 Chromium 内核浏览器,如果默认开启 WebRTC `H264` 或 `VP8` 视频硬件编码,可能会导致花屏。
@@ -195,7 +195,7 @@ createClient({codec:'vp8', mode})
-**问题原因**:可能是因为硬件编码导致特定视频编码帧率时码率无法达到预设值。 +**问题原因**:可能是因为硬件编码导致特定视频编码帧率下码率无法达到预设值。
From 9dcc5fc618154b83d2076ce91b95de99b3413828 Mon Sep 17 00:00:00 2001
From: linyinying
-**问题原因**:该问题是由 iOS 15.x 上 WebKit 视频编码功能回退导致,详见 [WebKit Bug 231505](https://bugs.webkit.org/show_bug.cgi?id=231505)。 +**问题原因**:该问题是由 iOS 15.1.x 上 WebKit 视频编码功能回退导致,详见 [WebKit Bug 231505](https://bugs.webkit.org/show_bug.cgi?id=231505)。
@@ -78,7 +79,7 @@ createClient({codec:'vp8', mode})
-**规避方案**:升级至 Web SDK 4.x 最新版本,并且尽量减少更改 `video` 元素及其父元素的 CSS 属性。 +**规避方案**:升级至 Web SDK 4.7.3 或以上版本,并且尽量减少更改 `video` 元素及其父元素的 CSS 属性。
-**规避方案**:暂无 +**规避方案**:Agora 建议你在业务层面添加提示,告知用户使用蓝牙耳机可能出现音频失真问题。
@@ -147,7 +148,7 @@ createClient({codec:'vp8', mode})-**规避方案**:升级至 Web SDK 4.x 最新版本。SDK 会尝试在打断事件后恢复媒体播放。 +**规避方案**:升级至 Web SDK 4.7.3 或以上版本。SDK 会尝试在打断事件后恢复媒体播放。Agora 建议你在业务层面增加提示,引导用户刷新页面。
@@ -170,11 +171,11 @@ createClient({codec:'vp8', mode})-**影响范围**:部分安装了 Android 12 的设备,如 Pixel 3 和 Pixel 4。 +**影响范围**:部分安装了 Android 12 的设备,如 Pixel 3 和 Pixel 4,且使用 Chrome 97 以下版本。
-**问题描述**:在 Android 12 上使用 Chrome 浏览器或 Chromium 内核浏览器,如果默认开启 WebRTC `H264` 或 `VP8` 视频硬件编码,可能会导致花屏。 +**问题描述**:在 Android 12 上使用 Chrome 浏览器或 Chromium 内核浏览器 97 或以下版本,如果默认开启 WebRTC `H264` 或 `VP8` 视频硬件编码,可能会导致花屏。
@@ -182,12 +183,12 @@ createClient({codec:'vp8', mode})
-**规避方案**:引导使用 Android 12 的客户在 Chrome 浏览器中打开 `Chrome://flags` 配置页面,关闭 WebRTC 视频硬件编码相关配置。Chrome 计划在 97 版本中修复该问题。 +**规避方案**:Chrome 97 已修改该问题,建议用户升级至 Chrome 97 或以上版本。
**影响范围**:部分 Android 设备,如部分小米及 One Plus 机型。 @@ -202,7 +203,7 @@ createClient({codec:'vp8', mode})
-**规避方案**:大部分情况下,视频编码帧率为 15 fps 时,码率会过低,而帧率为 30 fps 时码率则相对较高。因此 Agora 建议遇到码率问题时,尝试将帧率设为 30 fps。 +**规避方案**:大部分情况下,视频编码帧率为 15 fps 时,码率会过低,而帧率为 30 fps 时码率则相对较高。因此 Agora 建议遇到码率问题时,尝试将帧率设为 30 fps。请注意,将帧率设为 30 fps 可能会带来性能问题。
**规避方案**:参考以下步骤规避此问题: -1. 升级至 Web SDK 4.x 最新版本。 +1. 升级至 Web SDK 4.6.0 或以上版本。 2. 监听 `AgoraRTC.onAutoplayFailed` 事件。在此事件中,引导用户点击页面,恢复播放: ```javascript @@ -250,7 +251,7 @@ createClient({codec:'vp8', mode})
-**规避方案**:暂无 +**规避方案**:Agora 建议你在业务层面添加提示,告知用户使用蓝牙耳机可能出现无声问题。
@@ -260,7 +261,8 @@ createClient({codec:'vp8', mode}) - 在搭载**联发科芯片**的设备上无法使用 H.264 编码在 Chrome 浏览器中发送视频流。 - 在搭载**华为海思麒麟芯片**的设备上,Android Chrome 88 以下版本上,无法使用 H.264 编码发送视频流。 -- 在**OnePlus 6**上使用 Chrome 浏览器接收远端视频流期间熄灭屏幕,可能会导致视频流冻结。 +- 在 **OnePlus 6**上使用 Chrome 浏览器接收远端视频流期间熄灭屏幕,可能会导致视频流冻结。 +- **鸿蒙系统**不支持发 180p 的视频流。 @@ -270,7 +272,9 @@ createClient({codec:'vp8', mode}) - 在部分 Android 设备上可能无法获取到媒体设备的 device label。 - 在部分 Android 设备上音视频流被系统电话呼叫或其他语音和视频通话应用打断,可能会导致 track-ended,需要重新采集音视频。 -- 在 Android Chrome 上无法使用 H.264 编码发送大小流。 +- Android Chrome 上无法使用 H.264 编码发送大小流。 +- Android Chrome 90 以下版本中 `getVolumeLevel` 获取到的音量为 0,但是能听到声音。 +- Android 系统 WebView 55 至 75 版本中 `decodeFrameRate` 为 0。 From c33e00dc8e88772090a69b1852964b7faed95514 Mon Sep 17 00:00:00 2001 From: linyinying+ +**Impact**: All browsers and apps that use WkWebView on iOS 15.1.x, such as Safari and Chrome. +
++ +**Details**: If you set `codec` as `'h264'` when calling `createClient`, the browsers on iOS 15.1.x crash after you send the video stream. +
++ +**Reason**: This issue happens due to the regression of the WebKit video encoder on iOS 15.1.x. For details, see [WebKit Bug 231505](https://bugs.webkit.org/show_bug.cgi?id=231505). +
++ +**Workaround**: Use the VP8 codec for video encoding. + +```javascript +createClient({codec:'vp8', mode}) +``` +
++ +**Impact**: All browsers and apps that use WkWebView on iOS 15.x, such as Safari and Chrome.
++ +**Details**: On iOS 15.x, after the local user subscribes to the `RemoteAudioTrack` and plays it, sometimes the audio is routed to the earpiece instead of the speaker, and the volume that the local user may be very low.
++ +**Reason**: This issue happens due to the regression of the WebKit audio module on iOS 15.x. For details, see [ WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902). +
++ +**Workaround**: On iOS 15.x, use `WebAudio` to play the audio and use `GainNode` to increase the audio volume level. Use the following workaround: +1. Upgrade to the Web SDK 4.9.0 or later versions. +2. Set the SDK private parameter `REMOTE_AUDIO_TRACK_USES_WEB_AUDIO` as `true`. The SDK uses `WebAudio` to play the remote audio stream. Sample code: + ```javascript + function isIOS15(ua){ + // Use UA to judge whether the iOS version is 15 + } + + if(isIOS15(navigator.userAgent)){ + AgoraRTC.setParameter("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO", true); + } + ``` +
++ +**Impact**: All browsers and apps that use WkWebView on iOS 15.x, such as Safari and Chrome. +
++ +**Details**: On iOS 15.x, if you play the video in the DOM node and add some CSS properties (such as `transform` and `animation`) to the` video` element or its parent element, or if you change the CSS properties to redraw the video rendering area, sometimes the video goes black. +
++ +**Reason**: This issue happens due to the regression of the WebKit video renderer on iOS 15.x. For details, see [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902). +
++ +**Workaround**: Upgrade to the Web SDK v4.7.3 or later and minimize changes to the CSS properties of the `video` element and its parent elements. +
++ +**Impact**: All browsers and apps that use WkWebView on iOS 15.x, such as Safari and Chrome. +
++ +**Reason**: This issue happens due to the regression of the WebKit audio playback module on iOS 15.x. For details, see [WebKit Bug 231422](https://bugs.webkit.org/show_bug.cgi?id=231422). +
++ +**Workaround**: Agora recommends that you add a prompt to remind users of possible audio distortion issues when they try to use a Bluetooth headset. +
++ +**Impact**: All browsers and apps that use WkWebView on iOS 15.x, such as Safari and Chrome. +
++ +**Reason**: This happens primarily due to this WebKit [bug](https://bugs.webkit.org/show_bug.cgi?id=231105). After the browser switches to the background, the `AudioContext` of `WebAudio` stops processing audio. +
++ +**Workaround**: Follow these steps to avoid this issue: +1. Upgrade to the Web SDK v4.7.3 or later versions. +2. When calling `createMicrophoneAudioTrack`, set `bypassWebAudio` as `true`. The Web SDK directly publishes the local audio stream without processing it through `WebAudio`. + + ```javascript + const localAudioTrack = await AgoraRTC.createMicrophoneAudioTrack({bypassWebAudio: true}); + ``` + + > Note that this workaround has a side effect. After applying this workaround, the audio mixing fuction (`MixingAudioTrack`) in the SDK will fail. + >
+ >+ +**Impact**: All browsers and apps that use WkWebView on iOS 15.x, such as Safari and Chrome. +
++ +**Reason**: Such interruptions can cause the state of the `video` and `audio` elements to be `paused`. After the interruption finishes, the state cannot be automatically switched back to `playing`, and even calling `HTMLMediaElement.play` cannot resume the media playback. See the WebKit bug [232599](https://bugs.webkit.org/show_bug.cgi?id=232599) and [226698](https://bugs.webkit.org/show_bug.cgi?id=226698) for more details. +
++ +**Workaround**: Upgrade to the Web SDK v4.7.3 or later versions. The SDK attempts to resume media playback after the interruption. Agora recommends that you add a prompt that instructs users to refresh the page. +
++ +- The volume of a remote user may change randomly on iOS 13 and 14. +- Switching between the front and rear cameras may momentarily rotate the video. +- The audio routing can change randomly: Sometimes, the audio is routed to the speakerphone when a headset is connected, or to the earpiece when no headset is connected. +- If you call `getUserMedia` twice to get two tracks of the same media type, the first track goes muted or black. +- After a user switches to other apps that use the microphone or camera (such as Siri or Skype) and then switches back, the audio sampling or video capture fails. +
++ +**Impact**: The Chrome browser or Chromium kernel browser 97 or below on certain devices with Android 12, such as Pixel 3 and Pixel 4. +
++ +**Details**: If the Chrome browser on Android 12 enables the WebRTC `H264` or `VP8` hardware acceleration by default, video distortion may occur. +
++ +**Reason**: This issue happens due to the regression of the Chromium WebRTC video encoder. For details, see [Chromium issue 1237677](https://bugs.chromium.org/p/chromium/issues/detail?id=1237677). +
++ +**Workaround**: Chrome 97 fixed this issue. You can instruct users to upgrade to Chrome 97 or later versions. +
++ +**Scope**: Certain Android devices, such as Xiaomi and OnePlus. +
++ +**Reason**: This is a hardware encoder issue. The bitrate fails to reach the preset value at a specific video encoding frame rate. +
++ +**Workaround**: In most cases, the bitrate is relatively lower when the frame rate is set as 15 fps. If you set the frame rate as 30 fps, the bitrate increases. So Agora recommends trying to set the frame rate as 30 fps when encountering a bitrate issue. However, setting the frame rate as fps may cause performance issues. +
++ +**Impact**: The WeChat browser using Chromium 89 kernel +
++ +**Details**: The autoplay of inaudible media is blocked. Even after the user interacts with the webpage to resume the video playback, the autoplay block is still not removed. +
++ +**Reason**: This issue happens because the WeChat browser implements a custom autoplay policy. +
++ +**Workaround**: Follow these steps to avoid this issue: +1. Upgrade to the Web SDK v4.6.0 or later versions. +2. Listen to the `AgoraRTC.onAutoplayFailed` event. Instruct the user to click on the page to resume playback: + + ```javascript + AgoraRTC.onAutoplayFailed = ()=>{ + document.alert('Please click the page to resume playback'); + } + ``` +
++ +**Scope**: Certain Xiaomi and OnePlus devices +
++ +**Details**: If the local user wears a Bluetooth headset, when the Bluetooth headset starts capturing the audio, there is a possibility that the remote audio is lost. +
++ +**Reason**: It may be due to the audio issue on Chromium regarding the profile switch of the Bluetooth. +
++ +**Workaround**: Agora recommends that you add a prompt to remind users of possible no audio issues when they try to use a Bluetooth headset. +
++ +- On devices equipped with **MediaTek chips**, the Web SDK cannot encode and send video streams in H.264. +- On devices equipped with Huawei **HiSilicon Kirin** chips, if you use Chrome versions earlier than 88, the Web SDK cannot encode and send video streams in H.264. +- When receiving video streams on Chrome on **OnePlus 6**, if the screen turns off, the video may freeze. +- **Harmony OS** does not support sending the video stream of 180p. +
++ +- On some Android devices, the device labels might not be available. +- On some Android devices, the interruption of a phone call or an audio or video call from another application may end tracks. To resume the call, the Web SDK needs to re-capture the audio and video. +- On Android Chrome, the Web SDK cannot send high-quality and low-quality streams in H.264. +- On Android Chrome earlier than 90, the volume obtained by `getVolumeLevel` is 0, but the user can hear the audio. +- On Android system WebView 55 - 75, the `decodeFrameRate` property stays 0. +
+createScreenVideoTrack
method is not supported+ +Reason: iOS Safari and WkWebView do not support the `mediaDevices.getDisplayMedia` method. +
+setBeautyEffect
method is not supported+ +Reason: WebGL is not well supported on iOS Safari and WkWebView, and the image enhancement algorithm can reduce the system performance below acceptable levels. +
+The IBufferSourceAudioTrack.seekAudioBuffer
method is not supported+ +Reason: `WebAudio` on iOS does not support this method. +
++ +Reason: The Web SDK uses the H.264 Baseline Profile for negotiation, so encoding and sending a video stream with a resolution of 1080p or higher is not supported on iOS. +
+LowStreamParameter.bitrate
, and the resolution of the low-quality stream must be proportional to the resolution of the high-quality stream.+ +Reason: iOS Safari and WkWebView do not support setting the frame rate with the `RTCRTPSender.setParameters` method. After compressing the resolution with the `scaleResolutionDownBy` property, the resolution of the low-quality stream keeps proportional to the resolution of the high-quality stream. +
+encodeDelay
property is not supported+ +Reason: The `encodeDelay` property cannot be calculated through the `getStats` method of WebRTC on iOS. +
+createScreenVideoTrack
method is not supported+ +Reason: The `mediaDevices.getDisplayMedia` method is not implemented on mobile browsers and WkWebView. +
+setBeautyEffect
method is not supported+ +Reason: The image enhancement algorithm can reduce the system performance of mobile devices below acceptable levels. +
+-**问题描述**:在 iOS 15.1.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中,如果你调用 `createClient` 时将 `codec` 设为 `'h264'`,发送视频流后,页面会崩溃。 +**问题描述**:iOS 15.1.x 上如果你调用 `createClient` 时将 `codec` 设为 `'h264'`,发送视频流后,页面会崩溃。
@@ -41,14 +41,14 @@ createClient({codec:'vp8', mode}) **影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)。
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中,订阅并播放远端音频轨道 `RemoteAudioTrack` 后,播放音量有概率极低,且音频从听筒中而不是扬声器中播放出来。
+**问题描述**:iOS 15.x 上订阅并播放远端音频轨道 `RemoteAudioTrack` 后,播放音量有概率极低,且音频从听筒中而不是扬声器中播放出来。**问题原因**:该问题是由 iOS 15.x 上 WebKit 音频功能回退导致,详见 [WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902)。
-**规避方案**:在 iOS 15.x 上使用 `WebAudio` 进行音频播放并使用 `GainNode` 调整音量后,可以提高播放音量。Agora 建议你按照以下步骤规避该问题: +**规避方案**:iOS 15.x 上使用 `WebAudio` 进行音频播放并使用 `GainNode` 调整音量后,可以提高播放音量。Agora 建议你按照以下步骤规避该问题: 1. 升级至 Web SDK 4.9.0 或以上版本。 2. 设置 SDK 私有参数 `REMOTE_AUDIO_TRACK_USES_WEB_AUDIO` 为 `true`。SDK 内部会使用 `WebAudio` 播放远端音频流。示例代码如下: ```javascript @@ -71,7 +71,7 @@ createClient({codec:'vp8', mode})
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中,在 DOM 中播放视频且在 `video` 元素或其父元素添加某些 CSS 属性(如 `transform`、`animation`)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。 +**问题描述**:iOS 15.x 上在 DOM 中播放视频且在 `video` 元素或其父元素添加某些 CSS 属性(如 `transform`、`animation`)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。
@@ -92,10 +92,6 @@ createClient({codec:'vp8', mode})
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中,如果用户佩戴蓝牙耳机进行音频播放,音频有概率明显失真。 -
-- **问题原因**:该问题是由 iOS 15.x 上 WebKit 音频播放功能回退导致,详见 [WebKit Bug 231422](https://bugs.webkit.org/show_bug.cgi?id=231422)。
@@ -105,17 +101,13 @@ createClient({codec:'vp8', mode})
**影响范围**:iOS 15.x 上的所有浏览器及内嵌 WkWebView 的应用(如微信浏览器和 Chrome 浏览器)。
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中发送音频流,浏览器或应用切换到后台后,音频流发送会中断。
-
-
**问题原因**:由于 WebKit 的 [bug](https://bugs.webkit.org/show_bug.cgi?id=231105),浏览器切换至后台后,`WebAudio` 的 `AudioContext` 会停止音频处理。
@@ -140,10 +132,6 @@ createClient({codec:'vp8', mode})
-**问题描述**:在 iOS 15.x 上的 Safari 浏览器和内嵌 WkWebView 的应用中播放音视频,如果被其它语音或视频通话应用、Siri 呼叫、闹钟等打断,音视频播放有概率无法自动恢复。
-
-
**问题原因**:音视频播放被打断后,DOM `video` 元素和 `audio` 元素的状态变为 `paused`。打断结束后,状态无法自动切回 `playing`,且调用`HTMLMediaElement.play` 方法也无法恢复媒体的播放。详见 [WebKit bug 232599](https://bugs.webkit.org/show_bug.cgi?id=232599) 和[WebKit bug 226698](https://bugs.webkit.org/show_bug.cgi?id=226698)。
@@ -167,11 +155,11 @@ createClient({codec:'vp8', mode})
### Android
-**影响范围**:部分安装了 Android 12 的设备,如 Pixel 3 和 Pixel 4,且使用 Chrome 97 以下版本。
+**影响范围**:部分安装了 Android 12 的设备,如 Pixel 3 和 Pixel 4,且使用 Chrome 浏览器或 Chromium 内核浏览器 97 或以下版本。
@@ -183,22 +171,18 @@ createClient({codec:'vp8', mode})
-**规避方案**:Chrome 97 已修改该问题,建议用户升级至 Chrome 97 或以上版本。
+**规避方案**:Chrome 97 已修复该问题,建议用户升级至 Chrome 97 或以上版本。
**影响范围**:部分 Android 设备,如部分小米及 One Plus 机型。
-**问题描述**:在 Chrome 浏览器或 Chromium 内核浏览器上视频发送码率无法达到 Web SDK 的预设值。
-
-
**问题原因**:可能是因为硬件编码导致特定视频编码帧率下码率无法达到预设值。
@@ -211,11 +195,11 @@ createClient({codec:'vp8', mode})
-**影响范围**:使用 Chromium 89 内核的微信浏览器
+**影响范围**:使用 Chromium 89 内核的微信浏览器。
-**问题描述**:视频无法自动播放,并且当通过用户手势(点击、触摸)恢复自动播放后,下一次的视频播放仍然无法自动播放。
+**问题描述**:微信浏览器中视频无法自动播放。并且当用户通过手势(点击、触摸)恢复播放后,下一次视频仍然无法自动播放。
From eda24d5edd1fcff22d558629645bf38a8cb59170 Mon Sep 17 00:00:00 2001
From: linyinying
-**Details**: On iOS 15.x, after the local user subscribes to the `RemoteAudioTrack` and plays it, sometimes the audio is routed to the earpiece instead of the speaker, and the volume that the local user may be very low.
**Reason**: This issue happens due to the regression of the WebKit audio module on iOS 15.x. For details, see [ WebKit Bug 230902](https://bugs.webkit.org/show_bug.cgi?id=230902).
-**Workaround**: On iOS 15.x, use `WebAudio` to play the audio and use `GainNode` to increase the audio volume level. Use the following workaround:
+**Workaround**: On iOS 15.x, use `WebAudio` to play the audio, and use `GainNode` to increase the audio volume level. Use the following workaround:
1. Upgrade to the Web SDK 4.9.0 or later versions.
2. Set the SDK private parameter `REMOTE_AUDIO_TRACK_USES_WEB_AUDIO` as `true`. The SDK uses `WebAudio` to play the remote audio stream. Sample code:
```javascript
@@ -64,14 +64,14 @@ createClient({codec:'vp8', mode})
**Impact**: All browsers and apps that use WkWebView on iOS 15.x, such as Safari and Chrome.
-**Details**: On iOS 15.x, if you play the video in the DOM node and add some CSS properties (such as `transform` and `animation`) to the` video` element or its parent element, or if you change the CSS properties to redraw the video rendering area, sometimes the video goes black.
+**Details**: On iOS 15.x, if you play the video in DOM node and add some CSS properties (such as `transform` and `animation`) to the` video` element or its parent element, or if you change the CSS properties to redraw the video rendering area, sometimes the video goes black.
@@ -85,7 +85,7 @@ createClient({codec:'vp8', mode})
**Impact**: All browsers and apps that use WkWebView on iOS 15.x, such as Safari and Chrome.
@@ -96,7 +96,7 @@ createClient({codec:'vp8', mode})
-**Workaround**: Agora recommends that you add a prompt to remind users of possible audio distortion issues when they try to use a Bluetooth headset.
+**Workaround**: Agora recommends that you add a prompt to remind users of possible audio distortion issues when they use a Bluetooth headset.
**Impact**: All browsers and apps that use WkWebView on iOS 15.x, such as Safari and Chrome.
@@ -144,11 +144,11 @@ createClient({codec:'vp8', mode})
-- The volume of a remote user may change randomly on iOS 13 and 14.
-- Switching between the front and rear cameras may momentarily rotate the video.
-- The audio routing can change randomly: Sometimes, the audio is routed to the speakerphone when a headset is connected, or to the earpiece when no headset is connected.
+- The volume of a remote user can change randomly on iOS 13 and 14.
+- Switching between the front and rear cameras can momentarily rotate the video.
+- The audio routing can change randomly. Sometimes, the audio is routed to the speakerphone when a headset is connected or to the earpiece when no headset is connected.
- If you call `getUserMedia` twice to get two tracks of the same media type, the first track goes muted or black.
-- After a user switches to other apps that use the microphone or camera (such as Siri or Skype) and then switches back, the audio sampling or video capture fails.
+- After a user switches to another app that uses the microphone or camera (such as Siri or Skype) and then switches back, the audio sampling or video capture fails.
iOS 15.x: 浏览器切换到后台后,音频流发送中断
+iOS 15.x: 浏览器或应用切换到后台后,音频流发送中断
Android 12: 使用 WebRTC 视频硬件编码可能会导致花屏
+Android 12: Chrome 上使用 WebRTC 视频硬件编码可能会导致花屏
Android Chrome 上发送视频流,码率无法达到预设值
+Android Chrome 上视频发送码率无法达到 Web SDK 的预设值
微信浏览器中视频无法自动播放
iOS 15.x: The video played goes black
+iOS 15.x: The video playback goes black
iOS 15.x: After the user wears a Bluetooth headset, the audio may be significantly distorted
+iOS 15.x: If a user wears a Bluetooth headset, the audio may be significantly distorted
iOS 15.x: Audio and video playback may be not resumed automatically after an interruption with a system phone call, another real-time interaction app, Siri, or alarm.
+iOS 15.x: Audio and video playback might not resume automatically after being interrupted by a system phone call, another real-time interaction app, Siri, or an alarm.
Other known issues
-**Impact**: The Chrome browser or Chromium kernel browser 97 or below on certain devices with Android 12, such as Pixel 3 and Pixel 4. +**Impact**: The Chrome browser or Chromium kernel browser 97 or earlier on certain devices with Android 12, such as Pixel 3 and Pixel 4.
-**Details**: If the Chrome browser on Android 12 enables the WebRTC `H264` or `VP8` hardware acceleration by default, video distortion may occur. +**Details**: If the Chrome browser on Android 12 enables the WebRTC `H264` or `VP8` hardware acceleration by default, video distortion can occur.
@@ -176,7 +176,7 @@ createClient({codec:'vp8', mode})
**Scope**: Certain Android devices, such as Xiaomi and OnePlus.
@@ -220,14 +220,14 @@ createClient({codec:'vp8', mode})
**Scope**: Certain Xiaomi and OnePlus devices
-**Details**: If the local user wears a Bluetooth headset, when the Bluetooth headset starts capturing the audio, there is a possibility that the remote audio is lost.
+**Details**: If a local user wears a Bluetooth headset, when the Bluetooth headset starts capturing the audio, there is a possibility that the remote audio is lost.
@@ -235,7 +235,7 @@ createClient({codec:'vp8', mode})
-**Workaround**: Agora recommends that you add a prompt to remind users of possible no audio issues when they try to use a Bluetooth headset.
+**Workaround**: Agora recommends that you add a prompt to remind users of possible audio-loss issues when they use a Bluetooth headset.
The video sending bitrate on Android Chrome fails to reach the preset value.
+The bitrate when sending video on Android Chrome fails to reach the preset value.
If the local user wears a Bluetooth headset, after the local user starts to send the audio, the remote audio is lost
+If a local user wears a Bluetooth headset, after they start to send the audio, the remote audio is lost
- On some Android devices, the device labels might not be available. -- On some Android devices, the interruption of a phone call or an audio or video call from another application may end tracks. To resume the call, the Web SDK needs to re-capture the audio and video. +- On some Android devices, tracks can end if the audio and video streams are interrupted by system phone calls or other audio or video calling apps. To resume the call, the Web SDK needs to re-capture the audio and video. - On Android Chrome, the Web SDK cannot send high-quality and low-quality streams in H.264. - On Android Chrome earlier than 90, the volume obtained by `getVolumeLevel` is 0, but the user can hear the audio. -- On Android system WebView 55 - 75, the `decodeFrameRate` property stays 0. +- On Android system Webview versions from 55 to 75, the `decodeFrameRate` property stays 0.
@@ -302,7 +302,7 @@ Reason: The Web SDK uses the H.264 Baseline Profile for negotiation, so encodingLowStreamParameter.bitrate
, and the resolution of the low-quality stream must be proportional to the resolution of the high-quality stream.-Reason: iOS Safari and WkWebView do not support setting the frame rate with the `RTCRTPSender.setParameters` method. After compressing the resolution with the `scaleResolutionDownBy` property, the resolution of the low-quality stream keeps proportional to the resolution of the high-quality stream. +Reason: iOS Safari and WkWebView do not support setting the frame rate with the `RTCRTPSender.setParameters` method. After compressing the resolution with the `scaleResolutionDownBy` property, the resolution of the low-quality stream stays proportional to the resolution of the high-quality stream.