Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未调用VideoView onBufferingUpdate()?_Android_Buffering_Android Videoview - Fatal编程技术网

Android 未调用VideoView onBufferingUpdate()?

Android 未调用VideoView onBufferingUpdate()?,android,buffering,android-videoview,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

我想只允许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();
}

非常感谢您的建议。

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

我认为这是因为它是HLS视频,您尝试过渐进式HTTP下载吗?
我试过使用这个,我可以看到它被调用,我也在.setVideoURI()之后调用了.start(),而不是在onPrepared中。

您使用的是什么Android版本?