我正在测试一个简单的 webrtc 应用程序,为此我使用浏览器进行视频通话。我已经设置了一个运行 Android R (10.0+) 的模拟器,它模拟具有 4 GB 内存和 6 GB 硬盘空间的 Pixel 3。我使用模拟器和桌面之间的应用程序拨打了电话,在两个设备上都使用了 chrome,我在两个屏幕上都看到了参与者视频的黑屏。我使用了参数document.getElementsByTagName('video').readyState
,document.getElementsByTagName('video').networkState
并且我得到了值 0 或没有数据的 readystate 和值 2 或网络状态的加载。我用不同的模拟器(带有 Android Q 的 Pixel)尝试了相同的设置并检查了相同的参数,我没有遇到任何问题。我能够看到两位参与者的视频。谁能帮我吗?
问问题
301 次
1 回答
0
编辑:其实我只是想通了。如果您进入并从https://chromium.googlesource.com/external/webrtc/+/HEAD/sdk/android/src/java/org/webrtc/MediaCodecUtils.java#33中删除“OMX.google”并制作一个webtc 的自定义构建,应该允许在 API 28 及以下模拟器中播放。我正在努力尽快将其用于 29 岁及以上。
Android 模拟器将显示带有 h264 视频的空白屏幕,因为默认情况下 Android 的 webrtc 不启用 h264 硬件编码/解码。您将需要使用物理设备或构建 webrtc 以使用 h264 软件编码/解码。AFAIK这是最好的指南。您需要从中文翻译。请记住,这个怪癖还会导致视频在没有适当硬件(通常是 Qualcomm 或 Exynos 芯片组)的设备上显示为空白
于 2020-12-01T01:55:46.567 回答