2012-06-14 5 views
15

Ich bin Video-Wiedergabe (auf VideoView) auf Portrait-Modus (nicht als Vollbild), und wenn ich zuWie Video spielt zu halten, während in dem Querformat zu ändern android

Landschaftsmodus ändern, um den Video-Stopp.

Wenn ich es in Landschaft ändere, wird das Video auf dem ganzen Bildschirm angezeigt und wird weiterspielen.

Irgendwelche Vorschläge?

+0

Check diese Antwort http://stackoverflow.com/a/38971707/1153703 –

Antwort

42

alles, was Sie tun müssen, ist dies in AndroidManifest.xml Aktivität hinzufügen:

android:configChanges="orientation" 

Ihre Video-Aktivität wie folgt aussehen sollte.

<activity android:name=".VideoPlayerActivity" 
    android:configChanges="orientation" /> 

Wenn Ihr Ziel API-Level 13 oder höher, müssen Sie den Wert screenSize neben dem orientation Wert wie beschrieben here umfassen. Ihre Videoaktivität sollte in etwa so aussehen.

<activity android:name=".VideoPlayerActivity" 
    android:configChanges="orientation|screenSize" /> 

Und dann die folgende Methode VideoPlayerActivity hinzufügen:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
} 
+0

Ich habe versucht, was Sie vorgeschlagen, aber wenn ich im Portrait spielen Modus das Video ist klein im Vergleich zum Querformat, das Video sollte Vollbild sein, aber Video bleibt immer noch klein mit diesem Code – gilush14

+0

Tut mir leid, es funktioniert! :) tnx – gilush14

+0

Gut zu wissen :) –

0

Wenn Sie nichts anderes angeben, führt eine Konfigurationsänderung (z. B. eine Änderung der Bildschirmausrichtung, Sprache, Eingabegeräte usw.) dazu, dass Ihre aktuelle Aktivität zerstört wird und den normalen Aktivitätslebenszyklus von onPause() onStop durchläuft() und onDestroy() entsprechend. Wenn die Aktivität im Vordergrund oder für den Benutzer sichtbar war, wird onDestroy() in dieser Instanz aufgerufen, und dann wird eine neue Instanz der Aktivität mit dem von onSaveInstanceState (Bundle) generierten savedInstanceState der vorherigen Instanz erstellt.

Also, was passiert hinter den Kulissen: currnet VideoView Activity (Landschaft) ist zerstört, eine neue VideoView Activity (Portrait) wird erstellt, weil screenOrientation Konfiguration geändert wurde, und sofort destory (wo Sie die Auswirkungen auf dem Bildschirm sehen können), Die letzte Aktivität im Stapel wird angezeigt.

Versuchen Sie, diese Methoden zu handhaben und überprüfen

@Override 
protected void onResume() { 
    mVideoView.resume(); 
    super.onResume(); 
} 

@Override 
protected void onPause() { 
    mVideoView.suspend(); 
    super.onPause(); 
} 

@Override 
protected void onDestroy() { 
    mVideoView.stopPlayback(); 
    super.onDestroy(); 
} 
Verwandte Themen