2013-05-16 120 views
1

我有了这个简单的视频流播放器:的Android检查视频流结束

if (play) { 

        myVideoView.stopPlayback(); 
        myVideoView.clearFocus(); 
        myVideoView = null; 


        button5.setText("Start"); 
        play = false; 
       } else { 
//     dialog = ProgressDialog.show(Main.this, "Feldolgozás", 
//       "A videó töltődik"); 
        progressBar = new ProgressDialog(v.getContext()); 
        progressBar.setCancelable(true); 
        progressBar.setMessage("A video töltődik ..."); 
        progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
        progressBar.setProgress(0); 
        progressBar.setMax(100); 
        progressBar.show();  

        myVideoView = (VideoView) findViewById(R.id.myvideoview); 
        myVideoView.setVideoURI(Uri.parse(SrcPath)); 
        RelativeLayout.LayoutParams videoviewlp = new RelativeLayout.LayoutParams(
          500, 480); 
        videoviewlp.addRule(RelativeLayout.CENTER_HORIZONTAL, 
          RelativeLayout.TRUE); 
        videoviewlp.addRule(RelativeLayout.CENTER_VERTICAL, 
          RelativeLayout.TRUE); 
        myVideoView.setLayoutParams(videoviewlp); 
        myVideoView.invalidate(); 
        myVideoView.requestFocus(); 

        myVideoView.setOnPreparedListener(new OnPreparedListener() { 

         public void onPrepared(MediaPlayer mp) { 
          // mp.setOnCompletionListener(this); 
          mp.setOnBufferingUpdateListener(new OnBufferingUpdateListener() { 
           public void onBufferingUpdate(
             MediaPlayer mPlayer, int percent) { 

            progressBar.setProgress(percent); 

            if (percent == 100) { 
             //dialog.dismiss(); 
             progressBar.dismiss(); 
             // Toast.makeText(getApplicationContext(), 
             // "100%", Toast.LENGTH_LONG).show(); 
            } 

           } 
          }); 

          mp.start(); 

          // myVideoView.start(); 

         } 

        }); 


        play = true; 
        button5.setText("Stop"); 



       } 
     } 

我怎么能检查视频流已经结束或丢失? 如果丢失的按钮应该改变,以开始和停止videoview ... 坦克你的喉咙!

更新:我认为这个问题是与VLC RTSP流的,因为它说,如果YouTube RTSP结束......

回答

1

你可以尝试使用的VideoView以下监听器:

public void setOnCompletionListener (MediaPlayer.OnCompletionListener l) 

注册一个回调,当播放过程中媒体文件的末尾达到 时被调用。

public void setOnErrorListener (MediaPlayer.OnErrorListener l) 

注册回调时重放 或安装过程中出现错误时被调用。如果未指定侦听器,或者侦听器返回false,则VideoView将通知用户任何错误。

More Information

+0

我做了一个seOnErrorListener,但是还是一样,应用程序冻结,没有错误消息或我做的toeast ... 刚才说的媒体播放器断开 – David

+0

你怎么设置'MediaPlayer'? –

+0

一切都在发布代码 – David