Потоки веб-камеры не добавляются в тег html при возобновлении активности. - PullRequest
0 голосов
/ 18 февраля 2020

Я разработал приложение, которое открывает камеру и добавляет поток камеры к html тегу видео внутри android webview javascript кода для открытия камеры navigator.mediaDevices.getUserMedia({video:true,audio:true}).then(function(stream){$("video")[0].srcObject = stream}) Проблемы с моим приложением заключаются в том, что всякий раз, когда действие возобновляется потоки камеры удаляются из видео-тега веб-просмотра и отображаются поверх кнопки воспроизведения только серая кнопка воспроизведения.

Android код выглядит следующим образом

public class CameraStreamActivity {
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);

   public void initializeWebView(){
     mWebView =  view.findViewById(R.id.webview);



    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
    mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

    mWebView.addJavascriptInterface(new 
    JavaScriptInterface(getActivity()),"Android");
    // mWebView.getSettings().setLoadWithOverviewMode(true);


    WebView.setWebContentsDebuggingEnabled(true);
    if(Build.VERSION.SDK_INT >= 19){
        mWebView.setLayerType(View.LAYER_TYPE_HARDWARE,null);
    }

    else 
    {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
        }
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        mWebView.setWebContentsDebuggingEnabled(true);
    }
    mWebView.setWebChromeClient(new WebChromeClient(){
             @Override
             public void onPermissionRequest(PermissionRequest request) {

                    request.grant(request.getResources());

            }
       }

   }
 }

permissions used in AndroidManifest.xml


 <uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature
    android:name="android.hardware.camera"
    android:required="true" />
 <uses-feature android:name="android.hardware.camera.autofocus" />

<uses-feature android:name="android.hardware.audio.low_latency" />
<uses-feature android:name="android.hardware.audio.pro" />
<uses-permission android:name="android.permission.CAMERA" />
 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" 
/>
<uses-permission android:name="android.permission.MICROPHONE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
...