16

我正在开发一个应用程序,我需要将来自远程服务器的视频作为实时流播放。

这是我成功完成的。我管理了我的应用程序中的所有内容。

但是当视频加载时,我需要在 VideoView 上显示一个进度对话框。

我尝试使用 OnPreparedListener 作为“如何在播放视频之前显示进度条

@Override
public void onPrepared(MediaPlayer mp) {
    progressbar.setVisibility(View.GONE);
    mp.start();

}

但进度条 5-7 秒后视频播放消失了。我在谷歌上搜索了很多,但没有找到任何解决方案。

任何人都可以帮助我。

提前致谢。

4

2 回答 2

38

看看这个解决了我的问题希望对你也有帮助..

http://www.quicktips.in/how-to-show-progressbar-while-loading-a-video-in-android-videoview/

 progressbar.setVisibility(View.VISIBLE);

 videoView.setOnPreparedListener(new OnPreparedListener() {

            @Override
            public void onPrepared(MediaPlayer mp) {



                mp.start();

                mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {

                    @Override
                    public void onVideoSizeChanged(MediaPlayer mp, int arg1, int arg2) {
                        // TODO Auto-generated method stub
                        Log.e(TAG, "Changed");
                        progressbar.setVisibility(View.GONE);
                        mp.start();
                    }
                });


            }
        });

:)

于 2013-08-28T19:13:09.610 回答
2

令人难忘的是,Android 没有公开 OnStart Listener。在 Prepared 状态之后,MediaPlayer 在播放开始后进入 Started 状态。

但是只有在准备好的状态下,你才应该有足够的缓冲来玩。您可以使用 setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener 侦听器)并打印缓冲区的百分比。这样您就可以看到,如果处于准备状态,您是否有足够的缓冲区。

于 2013-05-09T16:10:43.463 回答