VideoView onBufferingUpdate()没有被调用?

时间:2014-09-04 10:19:26

标签: android buffering android-videoview

我想只允许20%的视频进行缓冲。但由于某种原因,我的onBufferingUpdate()没有被调用。

有什么原因吗? 我想在VideoView上播放.m3u8。视频播放但是onBufferingUpdate()没有被调用。

这是我的以下代码

String VideoURL =     "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.videoview_main);

    videoview = (VideoView) findViewById(R.id.VideoView);

    pDialog = new ProgressDialog(VideoViewActivity.this);
    pDialog.setTitle("Android Video Streaming POC");
    pDialog.setMessage("Buffering...");
    pDialog.setIndeterminate(false);
    pDialog.setCancelable(false);
    pDialog.show();

    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(VideoViewActivity.this);
}

@Override
public void onPrepared(MediaPlayer mp) {
    pDialog.dismiss();
    mp.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {
        // show updated information about the buffering progress
        @Override
        public void onBufferingUpdate(MediaPlayer mp, int percent) {
            Log.e("ERRORRRRRRRRRR", "percent: " + percent);
        }
    });
    videoview.start();
}

建议表示赞赏。

2 个答案:

答案 0 :(得分:0)

尝试在MediaPlayer上调用start()后设置监听器。

答案 1 :(得分:0)

我认为这是因为它是一个HLS视频,您是否尝试过渐进式HTTP下载? Test mp4 我尝试过这个,我可以调用它,我也在.setVideoURI()之后调用.start()而不是onPrepared。