web-dev-qa-db-fra.com

Comment lire l'URL de la vidéo dans la vue Web Android

Je souhaite lire l'url de la vidéo dans l'application Webview, mais lorsque l'application est affichée, elle affiche uniquement un écran blanc. J'avais lu quelques articles à ce sujet et j'avais utilisé ce code, mais la vidéo ne se lisait pas dans WebView. lecteur de périphérique, mais mon exigence pas cela.

aidez-moi s'il vous plaît si quelqu'un a déjà fait ceci. mon code est ici: - 

    WebView webView = (WebView) findViewById(R.id.myweb);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginState(PluginState.ON);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setSupportMultipleWindows(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageFinished(WebView view, String url) {
            setProgressBarIndeterminateVisibility(false);
            super.onPageFinished(view, url);
        }
    });
    webView.loadUrl("http://download.wavetlan.com/SVV/Media/HTTP/H264/Talkinghead_Media/H264_test1_Talkinghead_mp4_480x360.mp4");
    webView.setVisibility(View.VISIBLE);

L'URL de test fonctionne dans le navigateur. 

9
Alok Tiwari
WebView webview = (WebView) findViewById(R.id.webView1);
    webview.setWebViewClient(new WebViewClient());
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webview.getSettings().setPluginState(WebSettings.PluginState.ON);
    webview.getSettings().setMediaPlaybackRequiresUserGesture(false);
    webview.setWebChromeClient(new WebChromeClient());
    webview.loadUrl("https://www.youtube.com");

<application Android:allowBackup="true" Android:hardwareAccelerated="true" Android:icon="@drawable/ic_launcher" Android:label="@string/app_name" Android:theme="@style/AppTheme" > <activity Android:name=".MainActivity" Android:label="@string/app_name" > <intent-filter> <action Android:name="Android.intent.action.MAIN" /> <category Android:name="Android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>  

13
wadali

Ajoutez webview.setWebChromeClient(new WebChromeClient()); et pour activer les plugins pour votre vidéo, ajoutez: 

  if (Build.VERSION.SDK_INT < 8) {
     webview.getSettings().setPluginsEnabled(true);
  }  
  else {
     webview.getSettings().setPluginState(PluginState.ON);
  }

J'espère que cela t'aides.

1
Siddharth_Vyas

Vous devez charger un document HTML incorporant la vidéo à la place de la vidéo directement. Pour lire une vidéo en ligne dans WebView à l'aide de la balise <video>, vous devez également vous assurer que l'accélération matérielle est activée dans votre application (voir http://developer.Android.com/guide/topics/graphics/hardware-accel.html ). .

1
ksasq

Je sais que c’est un vieux problème, j’ai eu le même problème il ya quelques jours et en surfant sur Internet, j’ai trouvé cette source complète qui m’a beaucoup aidé, et maintenant je veux partager avec d’autres, peut-être que je pourrais en aider d’autres comme moi ..

https://github.com/cprcrack/VideoEnabledWebView

1
Ruben Flores

Si vous essayez d'autres ne répondent pas au travail, vous pouvez peut-être essayer ceci:

 if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.Lollipop){
        webview.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
    }
0
Kevin Wu

Je me suis aussi retrouvé coincé avec ce problème. J'ai eu une réponse correcte du serveur, mais je n'ai pas pu lire la vidéo. Après longtemps, j'ai trouvé une solution ici . Peut-être qu'à l'avenir ce lien sera invalide. Alors, voici mon code correct

Uri video = Uri.parse("Your link should be in this place "); 
mVideoView.setVideoURI(video); 

mVideoView.setZOrderOnTop(true); //Very important line, add it to Your code
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mediaPlayer) {
   // here write another part of code, which provides starting the video
}}
0
user7856586

Essaye ça.

{
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setDomStorageEnabled(true);
    settings.setMinimumFontSize(10);
    settings.setLoadWithOverviewMode(true);
    settings.setUseWideViewPort(true);
    settings.setBuiltInZoomControls(true);
    settings.setDisplayZoomControls(false);
    webView.setVerticalScrollBarEnabled(false);         
    webView.loadDataWithBaseURL(null, vUrl, "text/html", "UTF-8", null);
}
0
Darshan Singh

C'est peut-être une vieille question, mais cela fonctionne:

    //Here Im loading the html file from disk
    String html_file = LoadData(file.getAbsolutePath());

    WebView myWebView = (WebView) view.findViewById(R.id.webView);
    myWebView.reload();
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.loadData(html_file, "text/html; charset="utf-8", "UTF-8");

Utilisez des données vidéo codées en base64 comme source video:

//html_file
<video controls>
   <source type="video/mp4" src="data:video/webm;base64,MY_BASE64_ENCODED VIDEO_HERE">
</video>
0
Jupiter

Non, vous ne pouvez pas lire la vidéo par lien dans ce cas. Pour ce faire, vous devez créer une connexionRTSPafin que vous puissiez lire la vidéo via une URL RTSP dans Webview. Vous pouvez récupérer une connexion RTSP à partir d'un serveur tel que Youtube. 

0
Saunik Singh