播放视频时屏幕旋转

时间:2016-09-22 11:42:13

标签: android video screen-orientation

我正在播放一个视频并且它有一个全屏图标。点击它我强行将设备方向旋转到横向模式。但是当我旋转屏幕时,视频仅被锁定为横向模式。它是没有回到potrait模式。我希望视频旋转发生类似于Youtube / Hotstar应用程序,其中旋转的变化发生在按钮点击和设备方向改变。请提示一些前进的方法。

findViewById(R.id.landscape).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
  setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
    }
}
});

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setAutoOrientationEnabled(this,false);
}

问题:
我的简单要求是在使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENS OR_LANDSCAPE)强制旋转活动之后;如何在不调用setRequestedOrientation的情况下旋转设备再次返回potrait模式(ActivityInfo.SCREEN_ORIENTATION_SENS OR_POTRAIT);

1 个答案:

答案 0 :(得分:0)

对于按钮,您只需使用以下行更改它:

Button buttonSetPortrait = (Button)findViewById(R.id.setPortrait);
Button buttonSetLandscape = (Button)findViewById(R.id.setLandscape);

buttonSetPortrait.setOnClickListener(new Button.OnClickListener(){

   @Override
   public void onClick(View arg0) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
   }

});

buttonSetLandscape.setOnClickListener(new Button.OnClickListener(){

   @Override
   public void onClick(View arg0) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
   }

});

回答:https://stackoverflow.com/a/18268304
使用以下代码设置设备方向更改时的视频方向     覆盖     public void onConfigurationChanged(Configuration newConfig){         super.onConfigurationChanged(NEWCONFIG);

    // Checks the orientation of the screen
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }

看一下这个答案:https://stackoverflow.com/a/5726776

要启用或停用自动轮播,请查看以下答案:https://stackoverflow.com/a/4909079/4585226

import android.provider.Settings;
public static void setAutoOrientationEnabled(Context context, boolean enabled)
{
      Settings.System.putInt( context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, enabled ? 1 : 0);
}

添加AndroidManifest.xml的权限

<uses-permission android:name="android.permission.WRITE_SETTINGS" />