Android воспроизводит видео с контроллера - PullRequest
0 голосов
/ 24 ноября 2011

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

  1. , используя этот код, когда я нажимаю кнопку «Назад» на устройстве, звук по-прежнему будет воспроизводиться

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

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

1) Переопределить onBack. Нажмите в вашей активности:

@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 голосов
/ 30 июля 2016
    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();

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

...