Я использую веб-просмотр для загрузки URL-адреса, которая имеет функцию для видеовызова. Когда я пытаюсь инициировать видео звонок. Я получаю следующую ошибку «Отказано в разрешении. Пожалуйста, обновите страницу и разрешите доступ к камере и микрофону».
![Permission Denied](https://i.stack.imgur.com/qEnif.jpg)
Если я даю разрешение на выполнение AndroidКАМЕРЫ и RECORD_AUDIO. Видеозвонок будет инициирован, и видео будет также передано на компьютер. Но на мобильной стороне я не могу просматривать мое видео, а также видео получателя. Он показывает только getDefaultVideoPoster ().
![enter image description here](https://i.stack.imgur.com/0fcvq.jpg)
Я уже пробовал использовать WebChromeClient и WebViewClient, но все еще не повезло.
Вотмой код:
private WebView webView;
webView = findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setSaveFormData(true);
webSettings.setSupportZoom(false);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setPluginState(WebSettings.PluginState.ON);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webView.setWebViewClient(new MyWebViewClient());
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
myRequest = request;
for (String permission : request.getResources()) {
switch (permission) {
case "android.webkit.resource.AUDIO_CAPTURE": {
askForPermission(request.getOrigin().toString(), Manifest.permission.RECORD_AUDIO, MY_PERMISSIONS_REQUEST_RECORD_AUDIO);
break;
}
case Manifest.permission.RECORD_AUDIO: {
askForPermission(request.getOrigin().toString(), Manifest.permission.RECORD_AUDIO, MY_PERMISSIONS_REQUEST_RECORD_AUDIO);
break;
}
case Manifest.permission.CAMERA: {
askForPermission(request.getOrigin().toString(), Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA);
break;
}
}
}
}
@Nullable
@Override
public Bitmap getDefaultVideoPoster() {
Log.i(TAG, "getDefaultVideoPoster");
return drawableToBitmap(getResources().getDrawable( R.drawable.ic_temperature));
//return super.getDefaultVideoPoster();
}
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
Log.i(TAG, "onShowCustomView");
if (view instanceof FrameLayout){
FrameLayout frame = (FrameLayout) view;
if (frame.getFocusedChild() instanceof VideoView){
VideoView video = (VideoView)
frame.getFocusedChild();
frame.removeView(video);
video.start();
}
}
}
});