WebView ne PAS ouvrir android lecteur vidéo par défaut?
quand je l'ai vue cette page sur mon appareil android' navigateur web par défaut et cliquez sur la première vidéo, il déclenche le lecteur vidéo par défaut de mon appareil. Il charge et de jouer.
Cependant quand j'ai vue le même lien dans mon application, à l'aide d'une WebView, il n'a pas d'ouvrir le lecteur vidéo par défaut. Quel pourrait être le problème?
Je suis en utilisant la webview code dans ce lien.
J'ai aussi fait la webview en mode plein écran comme ce qui a été dit dans le docs, est utilisé ce code pour passer en mode plein écran:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
EDIT: je suis maintenant en utilisant le code suivant, mais toujours pas de travail, des idées?
package com.example.Playmp4OnWebView;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class PlayMp4OnWebView extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
WebView webview = new WebView(this);
setContentView(webview);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);
webSettings.setPluginsEnabled(true);
webSettings.setAllowFileAccess(true);
webview.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url){
if(url.endsWith(".mp4")){
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i); //warning no error handling will cause force close if no media player on phone.
return true;
}
else return false;
}});
//This will load the webpage that we want to see
webview.loadUrl("http://www.broken-links.com/2010/07/30/encoding-video-for-android/");
}
}
OriginalL'auteur Kris | 2011-06-06
Vous devez vous connecter pour publier un commentaire.
Vous devez joindre votre propre
WebViewClient
et remplacershouldOverrideUrlLoading()
si vous détectez une URL avec un vidéo pris en charge type mime return true, puis de lancer l'activité par défaut avec l'URL. Ici est non testé l'échantillon.espère que cette aide.
eh bien, si son chargement dans le même webview au lieu de lancer une activité ou forceclosing ensuite l'URL ne doit pas fin avec mp4, je mettrais un point d'arrêt dans shouldOverrideUrlLoading et voir ce qui se passe là-bas.
lorsque je clique sur la vid, rien happnes, il ne se charge pas ou lancer une activité ou de la force de fermeture. En fait, la première vid im cliquant sur n'utilise pas de href, il utilise html5 <video> tag. donc, il pense, il l'habitude de détecter votre condition url.endswith(".mp4"). des idées sur comment puis-je détecter cliquant sur le <video> étiquette pour lancer le lecteur vidéo par défaut?
Enfin de toute façon, je suis maintenant en utilisant l'android par défaut d'affichage de la vidéo à lire ces vidéos, j'ai de la sdcard... Merci 🙂
le meilleur conseil que je puisse donner est de mettre un point d'arrêt ou d'imprimer les journaux de l'URL et de voir ce que vous êtes en cliquant sur et de réfléchir à un moyen de tester la.
OriginalL'auteur schwiz
Si vous obtenez un
html5
balise vidéo dans leWebView
puis le code ci-dessus (à l'aide de WebViewClient) ne sera pas appelé, au lieu de cela, vous aurez à traiter avecWebChromeClient
comme indiqué dans le soufflet lienComment lire une vidéo dans une webview avec android?
J'ai essayé et ça a bien fonctionné 🙂
le code ci-dessus (à l'aide de WebViewClient) n'est utile que lorsque nous avons à gérer une demande de redirection vers une autre page via un utilisateur, cliquez sur la balise d'ancrage ou à travers un lien hypertexte dans le
WebView
OriginalL'auteur Big-M