1) Muss in AndroidManifest.xml In der Datei ist angegeben, dass HardwareAccelerate verwendet werden muss, was auf die Aktivitätsebene verfeinert werden kann. Wenn die Ansicht nicht benötigt wird, kann erklärt werden, dass sie keine Beschleunigung verwendet, dies muss jedoch erfolgen den Code wie folgt:
a. Wenn Sie erklären möchten, dass die gesamte Anwendung beschleunigt werden soll:
< application ... android:hardwareAccelerated ="true">
<activity ... android:hardwareAccelerated="true" >, 还可以更细化到Window, getWindow.setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
.setLayerType(View .LAYER_TYPE_SOFTWARE, null); 2) Was ist seltsam? ist, dass Sie
Chr
omeClient-Objekt Dieses WebChromeClient-Objekt muss die Methoden onShowCustomView und onHideCustom implementieren :
Okay, diese Schreibweise unterscheidet sich von vielen Schreibweisen im Internet. Die meisten Beispiele im Internet sind die von der onShowCustomView-Methode empfangene Ansicht ein VideoView-Objekt, und hier ist eine nicht gefundene VideoSurfaceView-Unterklasse von@Override public void onShowCustomView(View view, CustomViewCallback callback) { if (myCallback != null) { myCallback.onCustomViewHidden(); myCallback = null ; return; } long id = Thread.currentThread().getId(); WrtLog. v("WidgetChromeClient", "rong debug in showCustomView Ex: " + id); ViewGroup parent = (ViewGroup) mWebView.getParent(); String s = parent.getClass().getName(); WrtLog. v("WidgetChromeClient", "rong debug Ex: " + s); parent.removeView( mWebView); parent.addView(view); myView = view; myCallback = callback; chromeClient = this ; } private View myView = null; private CustomViewCallback myCallback = null; public void onHideCustomView() { long id = Thread.currentThread().getId(); WrtLog. v("WidgetChromeClient", "rong debug in hideCustom Ex: " + id); if (myView != null) { if (myCallback != null) { myCallback.onCustomViewHidden(); myCallback = null ; } ViewGroup parent = (ViewGroup) myView.getParent(); parent.removeView( myView); parent.addView( mWebView); myView = null; } }
VideoFullScreen. Diese Unterklasse ist auch eine private Unterklasse, auf die von außen nicht zugegriffen werden kann. In android.jar gibt es keine HTML5VideoFullScreen-Klasse. Wenn Sie in der Anwendung auf diese Klasse zugreifen möchten, müssen Sie das Paket
Tatsächlich besteht die allgemeine Bedeutung dieses Codes unabhängig von der Version darin, dass in der onShowCustomView-Methode die erhaltene Ansicht oben in der aktuellen Aktivität platziert und in onHideCustomView ausgeblendet wird vorherige Ansicht Oder Löschen, setzen Sie die ursprünglich abgedeckte Webansicht zurück und beenden Sie die Wiedergabe, andernfalls wird eine Meldung an MediaPlayer gesendet
IllegalStatusAusnahme, und es ist immer noch eine native Methode, daher kann sie überhaupt nicht debugged werden. Sie können es herunterladen, mit eclipse in das Projekt importieren und das Beispiel hinzufügen video Legen Sie es im Stammverzeichnis der SD-Karte ab. Aus Systemsicht ist es /mnt/sdcard. Der Effekt ist wie folgt: Vor dem Vollbildmodus: Nach Vollbild: >
Das obige ist der detaillierte Inhalt vonSo stellen Sie sicher, dass Android WebView die Vollbildwiedergabe von HTML5-Videos unterstützt (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!