2015-10-02 2 views
0

Я новичок в android, и я делаю простое приложение, где я получаю видео с локального устройства и воспроизвожу его в видеоизображении в своем макете. Воспроизведение видео отлично работает, но когда я меняю ориентацию с портрета на пейзаж, видео исчезает. Я считаю, что мне нужно сохранить состояние активности. Вот мой код.videooview video исчезают после изменения ориентации

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

=) без проблем bro –