2015-10-02 75 views
0

我是新来的android和我正在做一个简单的应用程序,我会从本地设备获取视频,并在我的布局视频播放中播放它。播放视频效果很好,但是当我将方向从纵向改为横向时,视频消失。我相信我需要保存活动的状态。这是我的代码。视频视频视频在改变方向后消失

public class MainActivity extends AppCompatActivity { 
private int position = 0; 
private VideoView vidView; 
private static int RESULT_LOAD_VIDEO = 1; 
String vidDecodableString; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button buttonLoadVideo = (Button)findViewById(R.id.buttonLoadVideo); 
    this.vidView = (VideoView)findViewById(R.id.myVideo); 

    buttonLoadVideo.setOnClickListener(new Button.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI); 
      startActivityForResult(galleryIntent, RESULT_LOAD_VIDEO); 
     } 
    }); 
} 
@Override 
protected void onActivityResult (int requestCode, int resultCode, Intent data) { 
    try { 
     if (requestCode == RESULT_LOAD_VIDEO && resultCode == RESULT_OK && null != data){ 
      Uri selectedVideo = data.getData(); 

      String[] filePathColumn = { MediaStore.Video.Media.DATA }; 
      Cursor cursor = getContentResolver().query(selectedVideo, filePathColumn, null, null, null); 
      cursor.moveToFirst(); 
      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      vidDecodableString = cursor.getString(columnIndex); 

      //URI 
      Uri vidUri = Uri.parse(vidDecodableString); 
      vidView.setVideoURI(vidUri); 

      MediaController vidControl = new MediaController(this); 
      vidControl.setAnchorView(vidView); 
      vidView.setMediaController(vidControl); 
      vidView.start(); 

     } else { 
      Toast.makeText(this, "Please select video to play.", Toast.LENGTH_LONG).show(); 
     } 
    } catch (Exception e) { 
     Toast.makeText(this, "Something went wrong.", Toast.LENGTH_SHORT).show(); 
    } 
} 

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    savedInstanceState.putInt("Position", vidView.getCurrentPosition()); 
    vidView.pause(); 
} 

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    position = savedInstanceState.getInt("Position"); 
    vidView.seekTo(position); 
} 

}

后,我运行的代码,选择和播放视频作品,但是当我改变方向,视频加载消失。我在哪里做错了。请指教。

回答

0

清单中

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

添加此属性,它的工作!我忘了这件事。哈哈哈。我太傻了。我仍然需要记住这么多事情。哈哈哈。谢谢您的帮助。 –

+0

=)兄弟没问题 –