24

VideoViewポートレート モード (フル スクリーンではない)でビデオを再生しています (オン)。

ランドスケープモードでビデオが停止します。

横向きに変更すると、ビデオがフルスクリーンで表示され、再生が続けられます。

なにか提案を?

4

3 に答える 3

57

これを AndroidManifest.xml のアクティビティに追加するだけです。

 android:configChanges="orientation"

ビデオ アクティビティは次のようになります。

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

ターゲット API レベル 13 以上の場合は、ここで説明されscreenSizeている値に加えて値を含める必要があります。ビデオ アクティビティは次のようになります。 orientation

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

次に、次のメソッドを VideoPlayerActivity に追加します。

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}
于 2012-06-14T11:05:08.947 に答える
-1

特に指定しない限り、構成の変更 (画面の向き、言語、入力デバイスなどの変更など) により、現在のアクティビティが破棄され、onPause()、onStop()、および onPause() の通常のアクティビティ ライフサイクル プロセスが実行されます。必要に応じて onDestroy()。アクティビティがフォアグラウンドにあるかユーザーに表示されていた場合、そのインスタンスで onDestroy() が呼び出されると、アクティビティの新しいインスタンスが作成されます。これには、前のインスタンスが onSaveInstanceState(Bundle) から生成した savedInstanceState が含まれます。

舞台裏で何が起こったのか: currnet VideoView アクティビティ (横向き) が破棄され、screenOrientation 構成が変更されたため、新しい VideoView アクティビティ (縦向き) が作成され、すぐに破棄され (画面上の効果を確認できる場所)、スタック内の最後のアクティビティ示されています。

このメソッドを処理して確認してください

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

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

@Override
protected void onDestroy() {
    mVideoView.stopPlayback();
    super.onDestroy();
}
于 2012-06-14T10:42:29.377 に答える