2011-07-13 33 views
0

我正在一个应用程序,其中用户有一个列表视图列表中的每一行播放按钮的视频列表。无论何时用户播放播放按钮,都会启动一个单独的活动来播放视频。我遇到的问题是我必须按两次后退按钮才能返回到主视频。此外,我已将视频设置为横向模式。当我的原始应用程序处于肖像模式并且视频处于横向模式时,然后返回到我的主应用程序时,它会崩溃。但是,当我的应用程序或我的设备处于横向模式并且播放视频时,那么返回时就很好。所以,我有两个问题Android:回放后播放视频

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(); 
    }} 

我希望我的问题是明确的,并会有人能够帮助我

THANKS

回答

0

活动会破坏重建它的自我,如果方向的变化,从纵向到横向,反之亦然,因为当你去从土地到港口后勤它可能是一些你所使用的变量是原因端口活动可能不会设置,可能会抛出NullPointerException。如果提供更多细节(如logcat和代码),则更好。

+0

其实问题是,我在模拟器上运行应用程序时没有遇到这些错误。当我在设备上使用它们时,它们只会发生。如果只能解决一个问题,它可以解决这两个问题,并且问题是为什么为了返回到原始应用程序,我必须再次按两次按钮。我已更新我的问题,包括我的videoplayback功能的代码..你能帮我吗?谢谢 – Farhan

+0

我以为,android视频播放器是单独的应用程序,当你第一次按下它关闭该应用程序,第二次它关闭上述活动,然后它会去你的主要活动 – sunriser

+0

好吧..有什么办法来完成当前活动一旦我第一次按后退按钮..我真的需要完成整个活动时,回来完成(只有一次,不是两次)..任何建议? – Farhan

0

为了避免双早点击播放视频时,你可以简单的写:

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标签安卓:configChanges这样的:

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

所以,你的行为将不会被重建。

+0

只知道在配置更改后重新创建'Activity'是因为某种原因默认的 - 在这里阅读所有内容:http://developer.android.com/guide/topics/resources/runtime-changes.html – andr