求daxia们,在mediaplayer播放媒流体时,拖动seekbar的进度到一个指定的点,当视频/音频再次加载完成、播放时触发的是什么listener?
注:实现的效果-当播放过程中,拖动seekbar的进度条时,会出现一个“加载中”/“缓冲中”的缓冲图,当再次加载完成且播放时“缓冲图”消失。

解决方案 »

  1.   

    拖动SeekBar需设置OnSeekBarChangeListener, 然后重写里面的方法即可
      

  2.   

    谢谢winsonx兄,
    OnSeekBarChangeListener我已经重写过了,不过在OnSeekBarChangeListener实体里我可以做“ProgressBar”的出现来表示正在缓冲媒体,不过得在媒体缓冲完成(播放)时让ProgressBar消失,现在问题出在了:在什么方法里写ProgressBar消失的语句?
      

  3.   

    onStopTrackingTouch(SeekBar seekBar) 这个方法你试过了嘛?
      

  4.   

    LS的,LZ的意思应该是监听视频的消息吧
      

  5.   

    消失,应该有dismiss或者cancel的方法吧
      

  6.   

    试过了,onStopTrackingTouch(SeekBar seekBar)是在拖动seekbar结束时,也就是手指离开屏幕时触发的,但是那会是正在加载媒体的时候,但是加载完成时不会触发该事件
      

  7.   

    OK,我问下,这个媒体加载是你自己实现的算法?还是你以为会出现缓冲?
    我在拖放mp3的时候不需要缓冲,直接就可以过去,视频到不清楚,我们产品不支持那个东西
      

  8.   

    hi,dinjay:
    不好意思,我不是那个意思“LZ的意思应该是监听视频的消息吧”。
    “加载中。。”这样的缓冲图可以利用ProgressBar.setVisibility(View.GONE)来消失,但是现在的问题是在什么方法里调用ProgressBar.setVisibility(View.GONE)
     
      

  9.   

    hi,winsonx兄:
    拖动mp3、mp4等媒体时,android的底层是已经实现了自己的缓冲,嗯,是不需要咱们自己处理,但是现在我这有个现象:当用户拖动视频进度比较大的时候,页面会一直停在那个页面上(即使后台正在缓冲中),用户体验不好,感觉像是死机,所以想在缓冲的时候给用户界面加载一个ProgressBar来动态显示。
      

  10.   

    个人认为对于视频你没做什么缓冲技术,直接就是用mediaPlayer.prepare()加载的视频,你直接在onStopTrackingTouch()里面,执行mediaPlayer.seekTo(int msec)就行
      

  11.   

    如果这样的话你就得自己实现个标志位,比如在用户抬起手后设置个标志位,然后在OnSeekBarChangeListener()
    实现onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)这个方法,判断SeekBar前进是否是用户操作的,如果不是说明加载完成,视频已经播放,最后让Dialog消失
      

  12.   

    那啥。。mOnSeekCompleteListener,setOnSeekCompleteListener。。
    看源码才是王道。。