タブレット (Android 4.2.2) で実行しているときに、Android アプリでビデオをフルスクリーンで再生するのに問題があります。Samsung の携帯電話でアプリを実行しようとしましたが (Android 4.2 と 4.3 の両方を試しました)、ビデオは全画面表示になっています。
私のビデオ アクティビティには、次の onCreate() があります。
@Override public void onCreate(Bundle savedInstanceState) {
mInstance = this;
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN|
WindowManager.LayoutParams.TYPE_APPLICATION_PANEL|
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
mSurfaceView = new SurfaceView(this);
setContentView(mSurfaceView);
mSurfaceHolder = mSurfaceView.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
Intent intent = getIntent();
mVideoPath = intent.getStringExtra("VIDEO_PATH");
try {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setScreenOnWhilePlaying (true);
}
catch (Exception e) { e.printStackTrace(); }
}
...そして、次の onVIdeoSizeChanged():
public void onVideoSizeChanged(MediaPlayer player, int width, int height) {
Log.v(TAG, "MediaPlayer: onVideoSizeChanged called");
if (width == 0 || height == 0) {
Log.e(TAG, "invalid video width(" + width + ") or height(" + height + ")");
return;
}
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height, 0x11); //Gravity.CENTER
mSurfaceView.setLayoutParams(params);
mSurfaceView.requestLayout();
}
私は何を間違っていますか??? 私は本当にここで立ち往生しているので、どんな提案もいただければ幸いです。