У меня есть приложение, которое открывает веб-просмотр моего веб-сайта. Этот сайт открывает заднюю камеру, чтобы сделать снимок. Я могу сделать это до тех пор, пока там, но по умолчанию выбранная камера не является предпочтительной. В моем Samsung S10 открытая камера имеет широкий угол, что очень неудобно.
Как выбрать лучшую камеру? Кто-нибудь знает обходной путь?
На рабочем столе или в мобильном телефоне chrome Я получаю ярлыки при выполнении navigator.mediaDevices.enumerateDevices()
, но в веб-просмотре пусто.
Это мой webrt c функция:
await this.stopTracksCamera();
let idealDevideId = undefined;
await navigator.mediaDevices.getUserMedia({ video: true }).then(async stream => {
this.tempStream = stream;
});
idealDevideId = await this.scanDevices();
await this.stopTracksCamera();
await navigator.mediaDevices.getUserMedia(constraints).then(stream => {
this.videoDom.srcObject = stream;
...
И настройки веб-просмотра моего приложения:
WebView web = (WebView) findViewById(R.id.silt_web);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
web.setWebContentsDebuggingEnabled(true);
}
WebSettings webSettings = web.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
webSettings.setPluginState(WebSettings.PluginState.ON);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
webSettings.setMediaPlaybackRequiresUserGesture(false);
}
web.setWebViewClient(new WebViewClient());
web.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
Log.d(TAG, "onPermissionRequest");
MainActivity.this.runOnUiThread(new Runnable() {
@TargetApi(Build.VERSION_CODES.M)
@Override
public void run() {
Log.d(TAG, request.getOrigin().toString());
/*if(request.getOrigin().toString().equals("file:///")) {*/
Log.d(TAG, "GRANTED");
request.grant(request.getResources());
/*} else {
Log.d(TAG, "DENIED");
request.deny();
}*/
}
});
}
...