【问题标题】:Full screen video in Android AppAndroid App 中的全屏视频
【发布时间】:2023-03-26 02:24:01
【问题描述】:

在平板电脑(Android 4.2.2)上运行时,我无法在我的 Android 应用中全屏播放视频。我尝试在我的三星手机上运行该应用程序(尝试了 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();
}

我做错了什么???任何建议都将不胜感激,因为我真的被困在这里了。

【问题讨论】:

  • 您在 logcat 中是否收到任何错误/异常?
  • 据我所见,logcat 中没有错误。有什么我应该注意的吗?我保存的logcat比较长,不知道贴出来有没有意义

标签: android video android-fullscreen


【解决方案1】:

不知道这是否特定于我正在使用的设备,但我不得不更改以下文件 /sys/class/screen_mode,它将我的视频置于全屏模式。

【讨论】:

    猜你喜欢
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 2012-11-22
    • 2013-08-23
    相关资源
    最近更新 更多