在编写音乐播放器时候遇到许多问题,我现在想把自己的问题记录下来。在音乐还未开始的时候,也就是start()之前,prepare()之后时候,通过seekTo()到特定的位置,前面在Service里面已经用create()使得MediaPlayer的状态在Prepared,但是还是不行,这个问题困恼了我很久,于是在网上疯狂找,找了很多材料,问题没找到,到时把MediaPlayer的机制了解了大概。后来通过Log语句发现在bind在onCreate()方法结束才绑定,故player一直为null,player.setMax()一直不能执行,刚开始放入子线程里面,才导致最开始拖拽seekbar时,因为player未与seekbar绑定,当点击按钮时,歌从零开始播放。后来把player.setMax()放入onServiceConnected里面,才得以解决。
public void onServiceConnected(ComponentName arg0, IBinder arg1) {
// TODO Auto-generated method stub
mybind=(MyBind)arg1;
player=mybind.getplayer();
pbar.setMax(player.getDuration());//Service在整个onCreat跑完,才开始调用,故player一直为空
}
MediaPlayer的在start()之前拖拽seekBar没用?
最新推荐文章于 2024-05-06 12:58:25 发布