- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试制作 Android WebRTC 应用
我在 Android Oreo 和 Pie 上测试过,该应用运行良好。
但是在 Android Lollipop 和 Marshmallow 上,当我调用 setRemoteDescription 函数时抛出错误。
(org.webrtc.SdpObserver::onSetFailure(String))
无法设置远程应答 sdp:启用 BUNDLE 时必须启用 rtcp-mux。
//setRemoteDescription code
String channelId = json.getString("channel_id");
int index = getPeerConnectionIndex(channelId);
JSONObject sdp = json.getJSONObject("sdp");
SessionDescription sdpOffer = new SessionDescription(SessionDescription.Type.fromCanonicalForm(sdp.getString("type")), sdp.getString("sdp"));
Log.d(TAG, sdpOffer.description);
mSDPObserver[index] = new SDPObserverWithId(index);
mSDPObserver[index].setChannelId(channelId);
mPeerConnection[index].setRemoteDescription(mSDPObserver[index], sdpOffer);
local Sdp:
v=0
o=- 3986057299756726360 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS ARDAMS
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 9 102 0 8 105 13 110 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:vAIE
a=ice-pwd:bVq8d3C2jNJ6+Q1Db90xCJxk
a=ice-options:trickle renomination
a=fingerprint:sha-256 B3:31:21:AA:DB:07:DC:F9:CF:BC:4F:86:01:46:C8:AF:BB:B3:65:F0:EC:B2:5A:1A:97:A8:52:CD:6C:4A:58:3F
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:3060595593 cname:tW/usjdUwhcVD9Gk
a=ssrc:3060595593 msid:ARDAMS ARDAMSa0
a=ssrc:3060595593 mslabel:ARDAMS
a=ssrc:3060595593 label:ARDAMSa0
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:vAIE
a=ice-pwd:bVq8d3C2jNJ6+Q1Db90xCJxk
a=ice-options:trickle renomination
a=fingerprint:sha-256 B3:31:21:AA:DB:07:DC:F9:CF:BC:4F:86:01:46:C8:AF:BB:B3:65:F0:EC:B2:5A:1A:97:A8:52:CD:6C:4A:58:3F
a=setup:actpass
a=mid:video
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 red/90000
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 ulpfec/90000
a=ssrc-group:FID 1050899396 3284914966
a=ssrc:1050899396 cname:tW/usjdUwhcVD9Gk
a=ssrc:1050899396 msid:ARDAMS ARDAMSv0
a=ssrc:1050899396 mslabel:ARDAMS
a=ssrc:1050899396 label:ARDAMSv0
a=ssrc:3284914966 cname:tW/usjdUwhcVD9Gk
a=ssrc:3284914966 msid:ARDAMS ARDAMSv0
a=ssrc:3284914966 mslabel:ARDAMS
a=ssrc:3284914966 label:ARDAMSv0
remote Sdp to set:
v=0
o=- 1555912613504775309 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS 4qgVUFPGGjzM2ZXwOgYUE5BTL0
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=mid:audio
a=setup:active
a=recvonly
a=rtcp-mux
a=rtcp-rsize
a=ice-ufrag:TFH9
a=ice-pwd:Ez2jn6OX7xdufJ58Gd1mbb01
a=ice-options:trickle
a=fingerprint:sha-256 8C:CC:45:9F:17:75:B7:6C:0B:A3:7F:5C:C5:0A:47:D9:6F:88:41:B7:8E:2C:AA:48:01:7F:C2:6C:77:E9:7A:2B
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=ssrc:1732894969 cname:ori8UQ7mdYvrS7eO
a=ssrc:1732894969 msid:4qgVUFPGGjzM2ZXwOgYUE5BTL0 kny6pqktc2YPysWY5MLS8pZW7rPyaqmiDKeS
a=ssrc:1732894969 mslabel:4qgVUFPGGjzM2ZXwOgYUE5BTL0
a=ssrc:1732894969 label:kny6pqktc2YPysWY5MLS8pZW7rPyaqmiDKeS
m=video 9 UDP/TLS/RTP/SAVPF 0
a=ssrc:1542320079 cname:ori8UQ7mdYvrS7eO
a=ssrc:1542320079 msid:4qgVUFPGGjzM2ZXwOgYUE5BTL0 p91hXGGeqs923R0gEMdVpzUGL29j5Q8kPZpB
a=ssrc:1542320079 mslabel:4qgVUFPGGjzM2ZXwOgYUE5BTL0
a=ssrc:1542320079 label:p91hXGGeqs923R0gEMdVpzUGL29j5Q8kPZpB
由于报错,Android 5.0~6.0设备无法推流出视频/音频,无法获取流。
我正在尝试构建用于调试的 native WebRTC 库,这对我来说非常困难...
最佳答案
这对我自己来说是个愚蠢的问题。
问题是服务器只使用 h264,而那些 Android 设备不支持 h264 和 WebRTC。
因此,远程 sdp 缺少视频选项并且 setRemoteDescription() 抛出 rtcp-mux must be enabled
错误。
(Android WebRTC 需要 rtcp-mux 和需要音频和视频的包)
关于android - Lollipop 设置远程描述错误: rtcp-mux must be enabled when BUNDLE is enabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790257/
我使用工具栏是为了在我的应用程序中进行 Material 设计。一切正常,但除了更改菜单项文本颜色时,我完全无法接受该解决方案。我还张贴了我在申请中使用的文本和代码的屏幕截图,供您引用。我尝试了几种替
看起来 FloatingActionButton 在 Android 4.0 和 Lollipop 上无法正常工作。正如您在下图中看到的那样,在 Android Lollipo 上,阴影缺失,而在 A
SDK 升级到 Android 5 后,我无法使用 Intel 硬件加速执行管理器: $ android-sdk-macosx/tools/emulator -avd AVD_for_LowMemor
SDK升级到Android 5后,无法使用Intel Hardware Accelerated Execution Manager: $ android-sdk-macosx/tools/emulat
我有不同 draw9patch png 作为背景的按钮。目前按钮由 selector 控制,看起来像这样: 对于 Android Lollipop,他们有一个用于触摸效果的
我尝试在 Pre-Lollipop 设备上运行我的应用程序。但是这段代码向我显示了 Pre-Lolliop 和 Lollipop 设备的相同错误。 如果我将“android:”添加到样式中(如样式 2
我实现了一个自定义的 SurfaceView 来绘制相机预览,并在其上完成了所有捕获和手动对焦操作。它在 Pre-Lolipop 设备上运行良好,但问题是它在 Lollipop 设备上崩溃。 发生的最
风格 @color/my_primary_color @color/my_primary_dark_color @color/accent 布局
我想在 Lollipop 设备中显示较旧的时间选择器(如 Lollipop 设备之前的时间选择器)。可以 这是可能的。 最佳答案 您可以通过将 timePickerMode 属性设置为“spinner
嗨,所以我有点困惑,想知道是否有人能指出我正确的方向。 在 Lollipop 和 pre-lollipop 上使用 Google Play 商店 您会在 Lollipop 上看到可选择的 View 具
如果我们希望使用 Material Design 的应用同时支持 Lollipop 和 Lollipop 之前的设备,以下哪种方法是正确的? 单独使用 Android 支持库:仅对整个应用程序使用支持
我正在使用 appcompat/support-v7 中引入的新工具栏小部件。我想根据用户是否向上/向下滚动页面来隐藏/显示工具栏,就像在新的 Google Playstore 应用程序或 NewsS
我的数据库中有一个 .mhtml 文件作为字节数组。我写了下面的代码,它在 Lollipop 之前的设备上运行良好。但它不适用于 Lollipop 和棉花糖。 代码:- String p
根据标题,我能够在下面的 Lollipop 中成功读取/写入数据,但在 Lollipop 中多次读取/写入失败。 这就是我读/写数据的方式: boolean isRead= getmBluetooth
我刚刚在 Android Studio 上安装了 Android 5,并在模拟器上进行了第一次运行。我发现“API Demos”应用程序非常有趣,我想找到代码。我说的是这个应用程序: 有人知道我在哪里
我正在关注 this tutorial在 Android Material Design 中使用颜色(我的 ActionBar 和 StatusBar)。我确实按照教程进行操作,但没有反射(refle
在我的应用程序中,用户可以通过它调用任何号码,我正在启动蓝牙 audioManager.setBluetoothScoOn(true); audioManager.startBluetoothSco(
我正在我的 android 应用程序中实现 Google map API v2。该应用程序在所有设备上都可以正常工作,但在 Lollipop 设备上却不行。应用程序在 Lollipop 中崩溃。我确实
我正在开发一个项目,其中有一个日期选择器。我正在尝试为其设置最大日期和最短日期。最短日期是今天之后 1 天,最大日期是今天之后 11 天。但问题是在 Lollipop 设备中,最后一个最大日期显示为可
我正在使用嵌入式无线系统,它以定义的时间间隔生成数据包。目的是检测设备/系统何时重新启动。为此,我读到 Lollipop 序列编号是最适合此目的的编号方案。 “在此编号方案中,序列号从负值开始,增加直
我是一名优秀的程序员,十分优秀!