短いビデオを再生する単純なアクティビティを作成しようとしています。ビデオの向きを除いてうまく機能します:アクティビティの向きを縦向きにロックしましたが、VideoView がビデオの再生を開始すると機能します。数秒後、VideoView/MediaPlayer が配置されているアクティビティの向きに従っていないようです。
アクティビティは再作成されないことに注意してください。ビデオは再生中に独自の構成を変更しました。
編集:
別のバックグラウンド アクティビティの AsyncTask を介してこのアクティビティを終了しようとすると、この方向が変更されました。アクティビティに終了を要求するインテント (Single_top) を送信するだけでなく、FLAG_ACTIVITY_REORDER_TO_FRONT は方向を変更しないことに注意してください。ここでは、方向をロックするために使用されるコードを示します (それらのどれも機能していませんでした)。
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //OnCreate
android:screenOrientation="portrait" //manifest
android:screenOrientation="portrait" //layout
ビデオのアクティビティを再生するために使用したコードは次のとおりです。
protected onCreate(Bundle savedInstance){
.
.
.
videoHolder = (VideoView) findViewById(R.id.videoView);
videoHolder.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video));
videoHolder.start();
}
レイアウト:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:keepScreenOn="true" >
<VideoView
android:id="@+id/videoView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:screenOrientation="portrait" />
</RelativeLayout>