Android:播放视频后回来

时间:2011-07-13 11:41:22

标签: android video orientation

我正在开发一个应用程序,用户在listview的每一行都有一个带有播放按钮的视频列表。每当用户播放播放按钮时,就开始单独的活动来播放视频。我遇到的问题是我必须按两次后退按钮才能返回主视频。此外,我已将视频设置为横向模式。当我的原始应用程序处于纵向模式并且视频处于横向模式然后我返回到我的主应用程序时,它会崩溃。但是,当我的应用程序或我的设备处于横向模式并播放视频时,我回去时就可以了。所以,我有两个问题

1-为什么我必须按两次后退按钮返回mainActivity(我还在视频活动中使用了onBackPressed来完成当前活动,但它不起作用) 2-为什么我的应用程序在纵向模式下崩溃并且视频以横向模式播放并且在返回主应用程序时,它会将视频更改为纵向模式一段时间然后崩溃。这是我的视频播放代码(我不知道为什么我必须按两次后退按钮才能返回主应用程序)

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.videoview);
    Intent i = getIntent();
    Bundle extras = i.getExtras();
    filename = extras.getString("videofilename");
    mVideoView = (VideoView)findViewById(R.id.videoview);
    path=filename;
    if (path == "") {

        Toast.makeText(
                ViewVideo.this, No video found,
                Toast.LENGTH_LONG).show();

    } else {

          mVideoView.setVideoPath(path);
          mVideoView.setMediaController(new MediaController(this));
          mVideoView.requestFocus();
          mVideoView.start();

    }
}


  @Override
  public void onBackPressed()
   {
   Log.v(TAG,"movie finished");
   finish();
  }}

我希望我的问题很明确,有人可以帮助我

谢谢

2 个答案:

答案 0 :(得分:0)

如果方向从纵向变为横向,反之亦然,

活动会破坏重建它自己,因此当你从陆地返回到港口时,可能是你在港口活动中使用的一些变量可能没有设置,可能会抛出NullPointerException。如果你提供更多的详细信息,比如logcat和代码,那就更好了。

答案 1 :(得分:0)

1。为避免在播放视频时双击,您只需写下:

mVideoView.setMediaController(new MediaController(this){
            public boolean dispatchKeyEvent(KeyEvent event)
            {
                if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
                    ((Activity) getContext()).finish();

                return super.dispatchKeyEvent(event);
            }
        });

2。要防止应用在纵向模式更改时崩溃,请添加到AndroidManifest.xml标记 android:configChanges ,如下所示:

<activity
    android:name=".YourActivity"
    android:configChanges="orientation|screenSize">
</activity>

因此,您的活动将不会重新创建。