Come giocare un video in un webview con Android?

Ho caricato un html locale in sdcard, e in questo html ho usato tag:

<video id="myvideo" controls width="120" height="60" poster="img/img01.jpg" src="video/01.mp4"></video> 

e poi ho scoperto che non ho caricato questo html, quando ho distriggersto il tag :, l'html stava funzionando bene e ho provato questo nel mio android avd (2.2)?

  • Condivisione dei dati tra frammenti e attività in Android
  • differenza tra Thread e Handler
  • Necessità di hide il contenuto del programma da Android "Schermata generale"
  • Imansible eseguire la dex: il limite di sovrapposizione GC è stato superato in Eclipse
  • Come faccio a forzare l'eclipse per mostrare layout e stili xml come text?
  • Android submit SMS che è visibile nel thread SMS (senza GUI)
  • Aggiunta di un button di riproduzione terminato utilizzando Android L Notification.MediaStyle
  • Perché ottengo un'exception di puntatore nullo da TabWidget?
  • Come posso integrare il portfoglio Paytm in un'applicazione Android?
  • Spinner onItemSelected () esegue quando non suppone
  • Come impostare il colore di background di una vista
  • Menu a comparsa Android con icone (simile alla versione 6 di Google Map app)
  • 2 Solutions collect form web for “Come giocare un video in un webview con Android?”

    Prima di tutto cura la codifica. Ecco un articolo con un esempio di lavoro e alcune linee guida per codificare i video per Android webkit.

    E poi … quando wheretti affrontare questo problema, ho dovuto cercare un po 'e ho trovato alcune risposte utili. Fondamentalmente è necessario aprire il video come funziona il browser nativo

     public class InredisChromeClient extends WebChromeClient implements OnCompletionListener, OnErrorListener { private InterfazWebInredis interfazWeb; // Use Your WebView instance instead private VideoView mCustomVideoView; private LinearLayout mContentView; private FrameLayout mCustomViewContainer; private WebChromeClient.CustomViewCallback mCustomViewCallback; private LinearLayout mErrorConsoleContainer; static final FrameLayout.LayoutParams COVER_SCREEN_GRAVITY_CENTER = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, Gravity.CENTER); public InredisChromeClient(InterfazWebInredis iwi) { super(); this.interfazWeb = iwi; } public void onShowCustomView(View view, CustomViewCallback callback) { // super.onShowCustomView(view, callback); if (view instanceof FrameLayout) { mCustomViewContainer = (FrameLayout) view; mCustomViewCallback = callback; mContentView = (LinearLayout) interfazWeb.findViewById(R.id.mainContainer); if (mCustomViewContainer.getFocusedChild() instanceof VideoView) { mCustomVideoView = (VideoView) mCustomViewContainer.getFocusedChild(); // frame.removeView(video); mContentView.setVisibility(View.GONE); mCustomViewContainer.setVisibility(View.VISIBLE); interfazWeb.setContentView(mCustomViewContainer); mCustomVideoView.setOnCompletionListener(this); mCustomVideoView.setOnErrorListener(this); mCustomVideoView.start(); } } } public void onHideCustomView() { if (mCustomVideoView == null) return; // Hide the custom view. mCustomVideoView.setVisibility(View.GONE); // Remove the custom view from its container. mCustomViewContainer.removeView(mCustomVideoView); mCustomVideoView = null; mCustomViewContainer.setVisibility(View.GONE); mCustomViewCallback.onCustomViewHidden(); // Show the content view. mContentView.setVisibility(View.VISIBLE); } @Override public void onCompletion(MediaPlayer mp) { mp.stop(); mCustomViewContainer.setVisibility(View.GONE); onHideCustomView(); interfazWeb.setContentView(mContentView); } @Override public boolean onError(MediaPlayer mp, int what, int extra) { interfazWeb.setContentView(R.layout.main); return true; } } 

    Quindi, questo codice è molto ispirato dal codice sorgente del progetto android del browser .

    E beh, il comportmento di ciò sta aprendo il video a schermo integer. Non so se sia ansible riprodurre il video nel proprio fotogramma all'interno della pagina web. Ma questa soluzione ha fatto il trucco per me, spero anche per te.

    Saluti

    Questo dovrebbe funzionare nelle versioni 2.x che state già utilizzando. ma il documento dice che il tag funziona quando il browser è fullscreen.

    Le possibilità sono che il tuo webview lo supporterà anche, ma deve essere a schermo integer. Prova questo. (Non ho ancora provato questo)

    EDIT: per rendere la visualizzazione visualizzata a schermo integer, puoi provare a:

     requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.