Android VideoView开始前的加载动画

17

我找不到任何解决方案,在VideoView开始播放之前显示加载动画(或只是imageView):在视频正在缓冲时。

有人有线索吗?

谢谢。


1
很难理解你的意思,但我认为你想要的是一个不确定进度条。 - user432209
对不起,如果我没有表达清楚。我的VideoView在流媒体中播放视频。所以当我启动该活动时,只能看到一个黑屏,而视频正在缓冲。例如,如果你看YouTube应用程序,有一个动画说明视频正在加载,我不认为这是一个不确定的进度条。我该如何检测视频正在缓冲?谢谢 - magiccyril
3个回答

45

或者您可以直接使用进度对话框(Progress Dialog);

public class VideoEkrani extends Activity {

    VideoView ekran;
    String kaynakYolu = "http://commonsware.com/misc/test2.3gp";
    ProgressDialog progDailog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sayfa_video_goruntule);


        ekran = (VideoView) findViewById(R.id.videoViewESPU);
        ekran.setMediaController(new MediaController(this));
        ekran.setVideoURI(Uri.parse(kaynakYolu));
        ekran.requestFocus();
        ekran.start();

        progDailog = ProgressDialog.show(this, "Please wait ...", "Retrieving data ...", true);

        ekran.setOnPreparedListener(new OnPreparedListener() {

            public void onPrepared(MediaPlayer mp) {
                // TODO Auto-generated method stub
                progDailog.dismiss();
            }
        });
    }
}

3
你救了我的命!!非常感谢你,@Amourreux。我知道在stackoverflow上感谢别人可能不太合适,但不告诉那些遇到VideoView问题的人这个解决方案也是不够的。 :) - Prachi
如果用户寻找视频,你如何在它重新流媒体之前放置一个进度条? - Mr.G
@Mr.G,我不太确定,但我认为该事件由MediaController管理。再次强调,我不确定。如果我正确理解了您的问题,那么这可能是一个好的新问题帖子。 - Mehmet Emre Portakal
谢谢,我会检查的。如果不行的话,我会提出一个新的问题。 - Mr.G

7

使用OnBufferingUpdateListener无法检测MediaPlayer的视频缓冲区。如果您使用VideView,请在OnPreparedListener内设置该侦听器。

videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
   public void onPrepared(MediaPlayer mp) {
     mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
       @Override
       public void onBufferingUpdate(MediaPlayer mp, int percent) {
         if(percent == 100){
           //video have completed buffering
         }
       }
     });
   }
});

7

最终我在VideoView上找到了setOnPreparedListener()方法。

我在布局中添加了一个ProgressBar,并通过OnPreparedListener隐藏它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接