是否有任何方法可以检测视频上的实时流缓冲是否已停止?

时间:2014-11-04 07:46:36

标签: android

我想查看天气,应用流(直播)正在缓冲或停止。他们是否可以在播放视频时听错误。我曾尝试使用onErrorListner,但检测到第一次是否发生错误

1 个答案:

答案 0 :(得分:3)

我会分两部分回答你的问题

  
      
  1. 我想查看应用流媒体(直播)的天气   缓冲或停止。
  2.   

您可以使用VideoView.setOnInfoListener(MediaPlayer.OnInfoListener l)在覆盖的onInfo(MediaPlayer mp,int what,int extra)方法中接收以下事件。

对于onInfo()的“int what”参数,

MEDIA_INFO_BUFFERING_START和MEDIA_INFO_BUFFERING_END

有关更多活动,请点击此处http://developer.android.com/reference/android/media/MediaPlayer.OnInfoListener.html#onInfo%28android.media.MediaPlayer,%20int,%20int%29

现在是第2部分,

  

他们是否可以在播放视频时听错误。我有   试过onErrorListner,但检测到是否发生任何错误   第一次

如果你在这里查看媒体播放器的状态图enter image description here

您会发现媒体播放器进入“错误状态”之后它将不会移动到任何其他状态,由于以下任何原因,可能会出现此状态:

  1. 不支持的音频/视频格式
  2. 交错的音频/视频
  3. 分辨率太高
  4. 流媒体超时等
  5. 有时,由于编程错误
  6. 在所有这些错误条件下,内部播放器引擎调用用户提供的OnErrorListener.onError()方法

    从这种情况和恢复过程中注意到的重要事项可以列举如下:

    1. 重要的是要注意,一旦发生错误,MediaPlayer对象就会进入错误状态(除非如上所述),即使应用程序尚未注册错误监听器。
    2. 为了重用处于错误状态的MediaPlayer对象并从错误中恢复,可以调用reset()将对象恢复到其空闲状态。
    3. 抛出IllegalStateException以防止编程错误,例如调用prepare(),prepareAsync()或其中一个重载的setDataSource方法处于无效状态。
    4. 您可以通过此链接获取有关媒体播放器的所有状态和正确处理的更多信息http://developer.android.com/reference/android/media/MediaPlayer.html

      享受!