写个Mp3播放器,在service里播放音乐,再启动一个线程把播放进度的信息mediaPlayer.getCurrentPosition()通过广播方式发送到activity,来跟新activity里的SeekBar进度,怎么播放之后不流畅,把线程去掉就好了,有人知道是怎么回事吗?

解决方案 »

  1.   

    你的thread是不是一直在执行,在中间加上sleep看看呢
      

  2.   

    加了sleep(time);就在这time时出现卡,不流畅
      

  3.   

    不在service中发广播,直接在activity中开辟一个thread定时通过mediaPlayer.getCurrentPosition()取得当前的播放进度更新进度条,ui不显示时就不需要执行更新进度条操作。
      

  4.   

    在activity中定义一个service类作为成员变量,能获取service中的mediaplay对象吗?mediaplay的状态不是一直在变吗?比如就mediaPlayer.getCurrentPosition()
      

  5.   

    找到原因了,我使用的线程run()中用了while(true),没有使用标志变量,导致其一直占有cpu,所以很卡,改了一下就好了。
      

  6.   

    我也遇到同样的问题,用的是sleep1000,应该不会很占CPU吧。