I made a simple android app that contains a webview and plays webrtc stream in it. (All the ice negotiation, SDPs are handled by js in the page that web view opens). On all devices the video shows up except Samsung Galaxy Tabs. on Samsung Galaxy A7/8 in the logs it shows that ice negotiation is done however the playback fails:
2022-02-21 14:29:57.174 16896-17040/? E/chromium: [ERROR:webrtc_video_engine.cc(3476)] Absent receive stream; ignoring clearing encoded frame sink for ssrc 0
2022-02-21 14:29:57.184 16896-17040/? W/chromium: [WARNING:rtcp_sender.cc(693)] Can't send rtcp if it is disabled.
Moreover, if I open exactly the same link on Samsung Galaxy's chrome app the video webrtc video is fine.
That's the code I use for web view:
webView.setWebChromeClient(object : WebChromeClient() {
override fun onPermissionRequest(request: PermissionRequest) {
activity.runOnUiThread {
request.grant(request.resources)
}
}
})
webView.setWebViewClient(WebViewClient())
webView.settings.javaScriptEnabled = true
webView.settings.mediaPlaybackRequiresUserGesture=false
webView.loadUrl("https://www.wowza.com/developer/webrtc/dev-view-play?playSdpURL=XXXXXXXXX")
All permissions to mic, camera, audio settings are added to manifest.
Maybe there are some devs that integrated wowza video who could have some ideas. Thank you
If you never receive candidates from onicecandidate this is most likely a known bug in Chrome (or chromium-based browsers) on Android. The fix is in Chrome M100 and should hopefully also be in M99. See the chrome issue tracker for details.