12
votes

Lecture de la vidéo MP4 dans WebView à l'aide de HTML5 dans Android

J'essaie de jouer à la vidéo MP4 dans webview fort> en utilisant html5 strong> dans Android, mais malheureusement, cela ne fonctionne pas, alors quelqu'un peut-il m'aider, comment puis-je le faire? voici mon code HTML STRT> fichier avec nom NOM NEW2.HTML P>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <WebView
        android:id="@+id/webview" 
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>


</LinearLayout>


4 commentaires

La première chose à laquelle je remarque, c'est que la balise vidéo fait référence à un fichier local (ON / SDCard). Je me demande si cela est permis (même si vous invoquez une vue Web via une application native). Si vous remplacez ce fichier local avec une URL sur un serveur local, la vidéo joue-t-elle? Si cela le fait, c'est un indice que vous avez un problème d'autorisations / d'accès.


Vous dites "ne pas fonctionner". peux-tu élaborer? Avez-vous activé Acceleration matérielle (voir Gist.github.com/3718414 pour un exemple)


@ OpsBeatMammal J'ai essayé cela aussi, mais cela ne fonctionne pas signifie que je reçois un écran de 365 * 200 avec les commandes Play Pause, recherchez, plein écran, etc. de videoView, mais l'écran est vide. J'ai essayé avec .mp4 et SWF ne jouent pas.


@ Multimedia Mike n'est pas ma condition que je veux lire la vidéo de la carte SD locale à l'aide de HTML.


4 Réponses :


1
votes

Vous devez appeler votre fichier via l'hôte local - Fichier: // localhost / - sinon votre téléphone ne reconnaîtra pas que vous demandez des autorisations. En utilisant votre navigateur sans localhost, vous êtes en train de faire un satellite et que vous ne pouvez pas remettre à la relacieuse.

Vous obtenez les commandes à afficher car ils proviennent d'un dossier HTML public, mais votre source (la vidéo) ne le fait pas.


0 commentaires

1
votes

de Ce blog a > Il indique qu'il y a deux étapes:

  1. Créez une nouvelle classe qui étend le contenuProvider et remplacer essentiellement 1 méthode openfile. Méthode Oncree peut être vide de retour en vrais et le reste peut simplement lancer une impression non prêtée. Li>
  2. Ajouter une entrée de fournisseur à AndroidManifest.xml. Li> ol>

    Cette page indique Comment le faire également - un résumé de cette page suit: P>

    Étape 1: Déclarez votre fournisseur de contenu à AndroidManifest .xml: p> xxx pré>

    Étape 2: p>

    Créez votre ContentProvider Code> et implémentez OpenFile code>. Tout ce que vous avez à faire est d'obtenir un chemin réel à partir d'Uri, ouvrez-le et renvoyez le descripteur p> xxx pré>

    Vous pouvez savoir où votre image est stockée à l'aide de: P>

    myWebView.loadUrl("content://com.techjini/myImage.jpeg");
                                 ^^^^^^^^^^^change to same as in manifest
    


0 commentaires

0
votes

Que se passe-t-il si vous modifiez "/sdcard/download/video.mp4" vers "Fichier: ///sdcard/download/video.mp4"? Je veux dire la partie HTML: xxx

Je n'ai pu ouvrir la page HTML dans une application Web personnalisée. Cependant, j'ai remarqué que sans ajouter "fichier: ///" La vidéo ne jouerait pas dans mon navigateur Android. (Dans mon cas en ajoutant "fichier: ///" Il a fallu un certain temps avant que la vidéo ne commence à charger.)


0 commentaires

0
votes
<video width="365" height="200" src="video.mp4" controls autobuffer></video>
and the video.mp4 should be in your assets folder, the same place where you are putting your new2.html

0 commentaires