Webview android未正确显示来自摄像头的视频
我使用Webview使用webRTC API加载视频,它在一些设备上运行良好,但在我测试的许多其他设备上不工作。这是输出的视频。这是一个视频,而不是GIF,正如你所看到的,视频没有播放,而是被击中。 下面是webview的代码Webview android未正确显示来自摄像头的视频,android,android-studio,webview,webrtc,html5-video,Android,Android Studio,Webview,Webrtc,Html5 Video,我使用Webview使用webRTC API加载视频,它在一些设备上运行良好,但在我测试的许多其他设备上不工作。这是输出的视频。这是一个视频,而不是GIF,正如你所看到的,视频没有播放,而是被击中。 下面是webview的代码 setUpWebViewDefaults(); webView.loadUrl("https://mysecurewebsite.com/api/connect?video_call_id=" + mVideoCallId);
setUpWebViewDefaults();
webView.loadUrl("https://mysecurewebsite.com/api/connect?video_call_id=" + mVideoCallId);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Log.d("getUserMedia, WebView", consoleMessage.message() + " -- From line "
+ consoleMessage.lineNumber() + " of "
+ consoleMessage.sourceId());
return true;
}
@Override
public void onPermissionRequest(final PermissionRequest request) {
runOnUiThread(new Runnable() {
@Override
public void run() {
// Below isn't necessary, however you might want to:
// 1) Check what the site is and perhaps have a blacklist
// 2) Have a pop up for the user to explicitly give permission
if(request.getOrigin().toString().equals("https://mysecurewebsite.com/") ||
request.getOrigin().toString().equals("https://mysecurewebsite.com/")) {
System.out.println("correct site");
request.grant(request.getResources());
} else {
System.out.println("incorrect site");
request.deny();
}
}
});
}
});
下面是setUpWebViewDefaults函数
private void setUpWebViewDefaults() {
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
settings.setAllowContentAccess(true);
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setMediaPlaybackRequiresUserGesture(false);
// Enable remote debugging via chrome://inspect
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
webView.clearCache(true);
webView.clearHistory();
webView.setWebViewClient(new WebViewClient());
}
如果你需要任何其他代码,请让我知道我会包括它