Невозможно воспроизвести видео с URL-адреса в видеопросмотре в android Как воспроизвести видео с URL-адреса в видеовоспроизведении? - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь реализовать видеоплеер в android, используя VideoView. У меня есть видео, загруженное на сервер. Я получаю видео с сервера и пытаюсь воспроизвести его. VIdeoView Я получил видео успешно, но не могу воспроизвести его в проигрывателе.

Ниже мой код:

    MediaController mediacontroller = new MediaController(getActivity());
    mediacontroller.setAnchorView(videoView);

    videoView.setMediaController(mediacontroller);
   
    videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
        
            videoView.setVideoURI(Uri.parse(video_url));
         
            videoView.start();
        }
    });

    videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
        @Override
        public boolean onError(MediaPlayer mp, int what, int extra) {

            Toast.makeText(getActivity(),"Error",Toast.LENGTH_SHORT).show();
            return false;
        }
    });

Кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно. Любая помощь будет принята с благодарностью.

СПАСИБО

1 Ответ

1 голос
/ 14 июля 2020

Вам также необходимо установить URL-адрес пути к видео, прежде чем настраивать медиа-контроллер для видеопросмотра, как это

Uri uri = Uri.parse(path);
           videoView.setVideoURI(uri);
           videoView.start();

Пример

     videoView.setVideoURI(Uri.parse(video_url));       
      videoView.start();
     MediaController mediacontroller = new MediaController(getActivity());
        mediacontroller.setAnchorView(videoView);
    
        videoView.setMediaController(mediacontroller);
       ProgressBar progressBar =findViewById(R.id.progressbar);
        progressBar.setVisibility(View.VISIBLE);
        videoView.setOnCompletionListener(new     MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
            
               
            }
        });
    
        videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {
    
                Toast.makeText(getActivity(),"Error",Toast.LENGTH_SHORT).show();
                return false;
            }
        });
   videoView.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                // TODO Auto-generated method stub
                mp.start();
                mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {
                    @Override
                    public void onVideoSizeChanged(MediaPlayer mp, int arg1,
                            int arg2) {
                        // TODO Auto-generated method stub
                        progressBar.setVisibility(View.GONE);
                        mp.start();
                    }
                });
            }
        });

Добавьте этот progressbar виджет в xml вот так

<ProgressBar
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:visibility="gone" />

Обновление: - Добавлен индикатор выполнения при воспроизведении видео

...