«Не удается воспроизвести это видео» Ошибка при использовании URL с VideoView и Mediacontroller - PullRequest
0 голосов
/ 23 января 2020

Итак, я пытаюсь сделать домашнее задание, но учитель дал мне 0 сведений об этом. Существует пример того, как воспроизвести видео из файла в папке res / raw, но в онлайн-URL ничего нет. Пожалуйста, помогите мне, я просто хочу простого игрока. Я приложу картинку, подробно описывающую, что случилось. Я также добавлю код, так как он не так уж много, и я действительно понятия не имею, что может быть не так. Ошибка говорит об этом:

W / MediaPlayer: не удалось открыть http://techslides.com/ ...

java.io.FileNotFoundException: No content provider: http://techslides.com/demos/sample-videos/small.mp4

И это код :

    VideoView video;
    String url = "http://techslides.com/demos/sample-videos/small.mp4";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    video = (VideoView) findViewById(R.id.videoView);
    MediaController mc = new MediaController(this);
    mc.setAnchorView(mc);
    video.setVideoPath(url);
    video.setMediaController(mc);
    video.start();
    }

Error and code - screenshot

Наконец, я добавлю к этому, что я пробовал несколько разных URL, включая некоторые https и некоторые http.

РЕДАКТИРОВАТЬ: Итак, я попытался исправить это, и в итоге это выглядело так:

    video = (VideoView) findViewById(R.id.videoView);
    final MediaController mc = new MediaController(this);
    mc.setAnchorView(mc);
    video.setVideoPath(url);
    video.setMediaController(mc);

    video.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){
        @Override
        public void onPrepared(MediaPlayer mp){
            video.start();
        }
    });

Но все равно выдает мне ту же ошибку, когда открыт эму. "Не могу воспроизвести это видео". С другой стороны, я получил кучу новых ошибок:

E / MediaPlayerNative: ошибка (1, -2147483648)
E / MediaPlayer: Ошибка (1, -2147483648)
D / VideoView: Ошибка: 1, -2147483648

Я не очень знаком с этой технологией, и учитель не дал нам никаких представлений о том, что должно или не должно быть в код для его работы. Просто пример локально сохраненного видео, воспроизводимого в Android Studio с VideoView ..., которое не работает при применении к онлайн-URL-адресам.

Ответы [ 2 ]

1 голос
/ 24 января 2020

Так что я все исправил сам. Проблема была не в коде, для всех, кто задавался вопросом, я использовал этот простой формат:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    video = (VideoView) findViewById(R.id.video);

    Uri uri = Uri.parse("http://techslides.com/demos/sample-videos/small.mp4");
    video.setMediaController(new MediaController(this));
    video.setVideoURI(uri);
    video.requestFocus();
    video.start();

}

Проблема была в самом AVD. У меня был Pixel 1, работающий Android 9, и это по какой-то причине не сработало. Я установил Nexus 5 с Oreo, и он работает безупречно.

0 голосов
/ 23 января 2020

Это может помочь вам

VideoView simpleVideoView = (VideoView) findViewById(R.id.simpleVideoView); // initiate a video view

// perform set on prepared listener event on video view
simpleVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {

// do something when video is ready to play, you want to start playing video here

}
});

Попробуйте запускать видео только тогда, когда оно полностью готово к воспроизведению. Поскольку загрузка mp4 займет некоторое время, поэтому при запуске видео он может быть несовместимым.

Надеюсь, это поможет.

...