Java 视频播放器中的Android方向改变

Java 视频播放器中的Android方向改变,java,android,orientation,Java,Android,Orientation,我有一个视频播放器。并希望同时启用横向和纵向。但问题是,当方向改变时,玩家每次都会下载文件。 我尝试使用OnConfiguration Change,但它仍然不起作用。 我怎样才能解决这个问题 另外,我已经更改了我的AndroidManifest.xml文件并添加了 android:configChanges="orientation|screenSize|keyboardHidden" 所以问题出在我的java文件的某个地方 这是我的密码: public class VideoViewAct

我有一个视频播放器。并希望同时启用横向和纵向。但问题是,当方向改变时,玩家每次都会下载文件。 我尝试使用OnConfiguration Change,但它仍然不起作用。 我怎样才能解决这个问题

另外,我已经更改了我的AndroidManifest.xml文件并添加了

android:configChanges="orientation|screenSize|keyboardHidden"
所以问题出在我的java文件的某个地方

这是我的密码:

public class VideoViewActivity extends Activity {

ProgressDialog pDialog;
VideoView videoview;

String VideoURL = "http://v.mover.uz/ep83Sfim_s.mp4";


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.videoview_main);

    if (Build.VERSION.SDK_INT < 16) {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    else
    {
        View decorView = getWindow().getDecorView();
    // Hide the status bar.
        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
    // Remember that you should never show the action bar if the status bar is hidden, so hide that too if necessary.
        ActionBar actionBar = getActionBar();
        actionBar.hide();
    }

    //        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


    setupActivity();

}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.videoview_main);

    setupActivity();
}

public void setupActivity() {
    videoview = (VideoView) findViewById(R.id.VideoView);
            // Create a progressbar
    pDialog = new ProgressDialog(VideoViewActivity.this);
    // Set progressbar message
    pDialog.setMessage("Buffering...");
    pDialog.setIndeterminate(false);
    pDialog.setCancelable(false);
    // Show progressbar
    pDialog.show();

    try {
        // Start the MediaController
        MediaController mediacontroller = new MediaController(
                VideoViewActivity.this);
        mediacontroller.setAnchorView(videoview);
        // Get the URL from String VideoURL
        Uri video = Uri.parse(VideoURL);
        videoview.setMediaController(mediacontroller);
        videoview.setVideoURI(video);

    } catch (Exception e) {
        Log.e("Error", e.getMessage());
        e.printStackTrace();
    }

    videoview.requestFocus();
    videoview.setOnPreparedListener(new OnPreparedListener() {
        // Close the progress bar and play the video
        public void onPrepared(MediaPlayer mp) {
            pDialog.dismiss();
            videoview.start();
        }
    });
  }
}
在您的OnConfiguration中,更改的应为:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    //if you need change layout then do:  
    switch(newConfig.orientation) {
        case Configuration.ORIENTATION_LANDSCAPE:
            setContentView(layout_landscape)
            break;
        case Configuration.ORIENTATION_PORTRAIT:
            setContentView(layout_portrait);
            break;
    }
}
无需再次调用setContentViewR.layout.videoview\u main和setupActivity


还需要添加AdroidManifest。

我认为您应该在活动的onDestroy中添加一些代码。因为每次屏幕方向改变时,活动都会首先被销毁,只需从onConfigurationChanged方法中删除您的代码,并在super getWindow.setFlagsWindowManager.LayoutParams.FLAG_全屏、WindowManager.LayoutParams.FLAG_全屏之后添加simple;我试过了,但不管用,对我也有帮助!非常感谢。我希望它最终能起作用,但当方向改变时,视频会再次重新下载。不应该这样做,因为使用OnConfiguration Changed然后活动不会销毁并重新启动。您的menifest中有吗?如果没有,那么添加我的Android清单在上面给出。现在,当我添加它时,视频只在手机方向改变之前播放。当我将它改为横向时,程序停止工作。但我希望播放器继续播放视频