2011-11-24 1 views
0

Я использую следующий код для воспроизведения видео в формате .mp4 на моем устройстве Android. У меня есть 3 проблемы,Android играет видео с контроллером

  1. с помощью этого кода, когда я нажимаю кнопку назад на устройстве звук будет еще continoue играть

  2. Это не играет видео, воспроизводит только звук!

  3. Я не знаю, как получить контроллер для видео, чтобы пользователь мог остановить видео, вернуться или вперед по видео.

    VideoView videoHolder = new VideoView(this); 
    videoHolder.setMediaController(new MediaController(this)); 
    getWindow().setFormat(PixelFormat.TRANSLUCENT);  
    MediaPlayer mediaPlayer = new MediaPlayer(); 
    Uri myUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.video); 
    
    videoHolder.setVideoURI(myUri); 
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    mediaPlayer.setDataSource(getApplicationContext(), myUri); 
    mediaPlayer.prepare();  
    mediaPlayer.start(); 
    
    videoHolder.requestFocus(); 
    videoHolder.start(); 
    

ответ

1

1) Override onBackPressed в вашей деятельности:

@Override 
public void onBackPressed() { 
    mediaPlayer.stopPlayback(); 
    super.onBackPressed();   
} 

2) Является ли он допустимый формат видео? Вы используете эмулятор или реальное устройство? Если вы используете эмулятор, попробуйте использовать реальное устройство. Я вспоминаю подобные проблемы раньше. Но я также замечаю: вы разместили свое видео в папке с рисунком?

R.drawable.video 

Я не думаю, что это сработает, вы не можете воспроизводить видео оттуда. Вместо этого используйте папку resources/raw. Кстати: аудио можно воспроизводить непосредственно из папки с данными, в то время как видео не может; видео может воспроизводиться только из необработанной папки или если вы скопируете его в папку файлов приложений (getFilesDir()) - или SDCard, конечно.

3) Почему вы используете VideoView и MediaPlayer, а не только VideoView? Вы должны избавиться от mediaPlayer и просто использовать VideoView. Эта строка

videoHolder.setMediaController(new MediaController(this)); 

выглядит правильно и устанавливает медиа-контроллер, с помощью которого пользователь может искать в видео. Программно вы можете также использовать seekTo(), чтобы идти туда и обратно в видео.

0
VideoView videoView =(VideoView)findViewById(R.id.vv01); 

    //specify the location of media file 
    Uri myUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.login_footage); 

    //Setting MediaController and URI, then starting the videoView 
    videoView.setVideoURI(myUri); 
    videoView.requestFocus(); 
    videoView.start(); 

Это работало для меня