在Android WebView中接收Kurento Media Server流

时间:2016-01-27 16:22:43

标签: android video-streaming webrtc kurento

我正在尝试Kurento 一对多视频通话示例(this one),其中Raspberry Pi使用uv4l将流发送到KMS。我正在尝试使用WebView在Android应用上查看流。我使用自定义WebViewClient来避免SSL证书错误。但是,当启用硬件加速时,将显示绿色矩形而不是视频,并且当禁用加速时,将显示旋转轮。但是,正确接收了音频。

Logcat显示以下消息:

  

[警告:webrtcsession.cc(1719)]候选人有未知成分:Cand [1:2:udp:2013266430:IP:PORT:local :: 0 ::]内容:音频

     

[警告:srtpfilter.cc(585)]无法取消保护SRTP数据包,错误= 9

     

[错误:channel.cc(666)]无法取消保护视频RTP数据包:   size = 1133,seqnum = 23250,SSRC = 1884862060

我用于WebView的代码如下。

    WebView displayWebView = (WebView) rootView.findViewById(R.id.displayWebView);
    WebSettings webSettings = displayWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setUseWideViewPort(true);
    webSettings.setLoadWithOverviewMode(true);

    displayWebView.setWebViewClient(new CustomWebViewClient());

    displayWebView.loadUrl("https://IP:PORT/"); 

CustomWebViewClient的代码如下。

private class CustomWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        Log.d(TAG, "Ignoring SSL certificate error...");
        handler.proceed();
    }
}

我在运行Lollipop的手机上测试了应用程序。我想这是与WebView相关的东西。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

官方支持的使用WebRTC的方式是使用WebRTC-capable browsers(即Chrome,Firefox和Opera以及Android浏览器)。 WebView确实支持WebRTC(虽然not everything),但是如何让WebRTC在WebView中工作是WebView用户可以更好地解决的问题。

另一方面,正在进行some research it seems like Crosswalk is a better option,因为它嵌入了功能齐全的Chrome浏览器。