首页 文章

如何使用VideoView / MediaPlayer在Android上播放流媒体视频

提问于
浏览
1

我有一个支持流媒体视频的网络服务器 . 所以它正确处理范围HTTP标头 .

有没有办法使用VideoView / MediaPlayer按块加载视频块?目前我只是使用VideoView.setVideoURI方法设置视频网址,并开始在onPrepared处理程序上播放视频 . 正如我所见,onPrepared处理程序在加载整个视频文件后被调用 .

2 回答

  • 0

    你可以尝试这样的事情:

    try {
                // Start the MediaController
                MediaController mediacontroller = new MediaController(
                        VideoViewActivity.this);
                mediacontroller.setAnchorView(videoview);
                // Get the URL from String VideoURL
                Uri video = Uri.parse(VideoURL);
                videoview.setMediaController(mediacontroller);
                videoview.setVideoURI(video);
    
            } catch (Exception e) {
    //            Log.e("Error", e.getMessage());
                pDialog.dismiss();
                e.printStackTrace();
    
            } finally {
                videoview.setOnErrorListener(new OnErrorListener() {
                    @Override
                    public boolean onError(MediaPlayer mp, int what, int extra) {
                        CommonUtilities.showToast(VideoViewActivity.this, "Video Format not supported by device.");
                        VideoViewActivity.this.finish();
                        return true;
                    }
                });
            }
    
            videoview.requestFocus();
            videoview.setOnPreparedListener(new OnPreparedListener() {
                // Close the progress bar and play the video
                public void onPrepared(MediaPlayer mp) {
                    pDialog.dismiss();
                    videoview.start();
                }
            });
    
  • 0

    请尝试使用此代码,它可以缓冲并与mediacontroller一起播放 .

    try {
                // Start the MediaController
                MediaController mediacontroller = new MediaController(
                        VideoViewActivity.this);
                mediacontroller.setAnchorView(videoview);
                // Get the URL from String VideoURL
                Uri video = Uri.parse(VideoURL);
                videoview.setMediaController(mediacontroller);
                videoview.setVideoURI(video);
    
            } catch (Exception e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
    
            videoview.requestFocus();
            videoview.setOnPreparedListener(new OnPreparedListener() {
                // Close the progress bar and play the video
                public void onPrepared(MediaPlayer mp) {
                    pDialog.dismiss();
                    videoview.start();
                }
            });
    

相关问题