2012-04-10 16 views
2

Ich habe eine Android-Aktivität erstellt und in diesem ich habe eine Web-Ansicht. Ich habe einen HTML5 Dateipfad zu webview gegeben.Android: Html 5 Video stoppt nicht auf Aktivität beenden

Html 5 Datei enthält ein Video Tag, in dem ich android kompatibles mp4 Video vom Server anrufe wie: "http: //xxx/test/abc.mp4".

Video spielt gut in Webview, aber wenn Video im Puffermodus ist und ich schließe die Webansicht oder schließen Sie die Aktivität durch Drücken der Zurück-Taste auf Android Tablet, dann wird das Video noch im Hintergrund abgespielt, auch wenn activty abgeschlossen ist.

Wenn ich die Aktivität schließe und das Video im Wiedergabemodus ist (nicht im Puffermodus), wird das Video ohne Probleme ordnungsgemäß beendet.

Ich habe versucht, den Webview-Thread zu schließen, wie in "http://stackoverflow.com/questions/5946698/how-to-stop-youtube-video-playing-in-android-webview" erwähnt, aber kein Glück ....

Bitte helfen Sie mir dabei. Ich stecke in den letzten 5 Tagen fest.

Vielen Dank im Voraus ... Ketan

Antwort

1

Refer this post

Der einzige Weg ist Methode

onPause onPause Methode von Ihrer eigenen Aktivität der WebView ist zu nennen
@Override 
public void onPause() { 
    super.onPause(); 

    try { 
     Class.forName("android.webkit.WebView") 
       .getMethod("onPause", (Class[]) null) 
          .invoke(webview, (Object[]) null); 

    } catch(ClassNotFoundException cnfe) { 
    ... 
    } catch(NoSuchMethodException nsme) { 
    ... 
    } catch(InvocationTargetException ite) { 
    ... 
    } catch (IllegalAccessException iae) { 
     ... 
    } 
} 
2

Raneez Ahmed Antwort richtig ist. Wenn Sie jedoch für die API-Level 11 oder höher entwickeln, können Sie WebView.onPause direkt ohne Reflexion Zugang:

@Override 
public void onPause() { 
    webview.onPause(); 
    super.onPause(); 
} 

Denken Sie daran, auch onResume implementieren:

@Override 
public void onResume() { 
    super.onResume(); 
    webview.onResume(); 
}