Android中music播放器源码要点详解【安卓music源码进化一】

最近来了个安卓music的bug,播放music的时候,点击上一首播放当前歌,从头开始播放。谷歌公司当初设计的思想是按照以前cd的思想,点击一下回到当前歌的开始点,再点击一下(时间间隔要短,就像双击的效果就可以了)就回到上一首歌了。谷歌的这种思想初衷是好的,但是有个拖动条可以拖动,歌曲可以在任何位置播放,就没有必要这么设计了。对开发来说这个设计没什么,但是对用户来说,用户体验相当不好。个人观点:其实谷歌公司也没有从中国用户的角度来考虑这个问题吧,或许在美国这个设计思路,美国公民是接受的。闲话少说,先来看看截图:图(1),图(2)。大明原创,转载请标明出处:http://blog.csdn.net/wdaming1986/article/details/6990477

 

                                           

                                              图(1)                                                          图(2)

 

下面来看代码:

 在源码中..\packages\apps\Music\src\com\android\music\MediaPlaybackActivity.java类中,423行代码:

mPrevListener 监听器,监听播放前一首button按钮,大明提醒:安卓点击屏幕的button键,点击一下事件发出一个消息,一直按着也发一个消息,这点和实体键有区别。双击的效果就可以用播放歌大小(这个大小我个人感觉是size,byte字节的大小,没有细细研究,个人猜测。),但是这种设计会有弊端,用户在刚播放音乐的时候,1秒内点击播放上一首歌,同样可以返回到上一首歌,这点谷歌没有想到吧,用户什么情况都可能发生的。

[java]  view plain copy print ?
  1. private View.OnClickListener mPrevListener = new View.OnClickListener() {  
  2.      public void onClick(View v) {  
  3.          if (mService == nullreturn;  
  4.          try {  
  5.              if (mService.position() < 2000) {  
  6.                  mService.prev();  //如果播放点击时间比较短,在1秒内点击,这个就是双击的效果,但是有个弊端,单击时间特别短也可以进入到上一首歌。  
  7.              } else {  
  8.                  mService.seek(0);//如果歌播放超过1秒,点击播放歌曲上一首,播放当前歌曲的开始处。  
  9.                  mService.play();  
  10.              }  
  11.          } catch (RemoteException ex) {  
  12.          }  
  13.      }  
  14.  };  

       如果想修改,很简单,就在onClick()方法中,不做判断,直接mService.prev(); 就行了,记得try--catch包住,这样就可以了。但是谷歌的这个思想会给我带来很多启发,所以我写出来,同样希望给读者带来启发。给大家分享一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值