我正在尝试创建一个包含 webRTC 的 webview,但是当我尝试加入以访问房间时,出现以下错误:“无法访问本地媒体。错误名称是 NotAllowedError。在没有发送信号的情况下继续流式传输”。提前致谢。
@SuppressLint("SetJavaScriptEnable")
private void initWebView(){
webView = findViewById(R.id.WebViewID);
webView.setWebChromeClient(new WebChromeClient(){
@Nullable
@Override
public Bitmap getDefaultVideoPoster() {
return Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888);
}
});
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setMediaPlaybackRequiresUserGesture(false);
webView.loadUrl(url);
}
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
最佳答案
仅通过以下方式在 list 中声明权限是不够的:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
您必须要求用户在代码中授予这些权限 (reference),或者手动转到设备中的权限设置并授予所需的应用程序 Camera
和 麦克风
权限。这样做应该可以解决问题。
关于android - 无法访问 android webview 上的本地媒体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51211370/