在orientationchange中,片段中的VideoView为null

时间:2013-12-04 22:44:23

标签: android android-fragments android-videoview onpause

我的片段中有视频观看。当视频正在播放并且我改变了方向时,它会在froment onPause()中抛出空指针异常,其中我正在暂停视频。以前未将视频视图附加到活动时发生此问题。最近我不得不将活动更改为碎片并从那时起获得异常。

video.xml

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/fullScreenContainer">
    <SurfaceView
        android:layout_width="0px"
        android:layout_height="0px"
        android:id="@+id/dummySurfaceView"/>
    </FrameLayout>

这是我的片段onPause()

@Override
public void onPause() {
    super.onPause();
    if (videoView != null) {
        videoView.pausePlayer();
    }
}

videoView 视频类的一个对象,它扩展了其中包含VideoView vidPlayer的RelativeLayout

Video.java

public void pausePlayer() {
    isPaused = true;
    vidPlayer.pause();
    btnPlay.setImageResource(R.drawable.video_play);
    controlsManager.cancelHideTimer();
}

所以,这是结构 - &gt;

 ___________________________________
|      ** MyFragment.java **        | 
|  _______________________________  |
| |       ** Video.java **        | |
| |  ___________________________  | |
| | |                           | | |
| | |  **VideoView vidPlayer**  | | |
| | |___________________________| | |
| |                               | |
| |_______________________________| |
|                                   |  
|___________________________________|

1 个答案:

答案 0 :(得分:0)

在您的活动清单上尝试此添加:

 android:configChanges="keyboardHidden|orientation"

在您的活动中,您必须添加以下代码:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    // Pass any configuration change to the drawer toggls 

}