【问题标题】:Unable to play video from url in videoview in android How to play video from URL in videoview?无法在android的videoview中播放来自url的视频如何在videoview中播放来自URL的视频?
【发布时间】:2020-07-14 10:55:22
【问题描述】:

我正在尝试使用VideoView 在android 中实现视频播放器。我在服务器上上传了视频我正在从服务器获取视频并尝试在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;
        }
    });

有人请让我知道我做错了什么。任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: android url video android-videoview


    【解决方案1】:

    在将媒体控制器设置为这样的视频视图之前,您还需要设置视频路径 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();
                        }
                    });
                }
            });
    

    像这样在xml 中添加这个progressbar 小部件

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

    更新:- 在播放视频时添加进度条

    【讨论】:

    • 更新代码,试试看,然后点击我的答案上的勾号图标确认
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多