Android之音乐播放器——简单版

        当我的Android模拟器响起Robert Miles Children的歌曲时,我直接趴下去睡着了。虽然实现播放,但是醒来时发现还是一堆bug,噼里啪啦,搞定初步。


       有老师开了两天的android课,当实习,多奇葩,看到我们40多岁的嵌入式老师也在学,而且满满的笔记,活到老,学到老。

     

       开场动画一张:


播放界面一张:

01版本未完善,直接读取sdcard根目录,显示文件名在ListView上,可以点击播放,也可以控制暂停和停止,歌曲播放完后停止,未完善的地方:上下曲不能针对正在播放的曲子上下,还有SeekBar不能控制歌曲。还有正在播放的曲目。



开场动画:

Log.java里面

ImageView iv = (ImageView)findViewById(R.id.welcome);
		AlphaAnimation aa = new AlphaAnimation(1f, 1f);
		//动画开启1.5秒
		aa.setDuration(1500);
		iv.startAnimation(aa);
动画维持1.5秒后,再过度到主界面MusicPlayerActivity.java。


在主页面为按钮的点击添加监听器,用intent,像个包裹一样,能传进一些变量的值。一个是按钮动作:

Intent intent=new Intent(Constant.controlaction);
intent.putExtra("cmd", Constant.pause);
MusicPlayerActivity.this.sendBroadcast(intent);


还有一个是更新页面,主要就是歌曲时间:

 IntentFilter filter=new IntentFilter();
filter.addAction(Constant.updateaction);
this.registerReceiver(uiupdate, filter);	
这种是动态的注册广播,静态的广播是直接在Manifest配置,前者可以自己Destroy。他就在向外界宣布,播放了,改页面了。
通过Broadcast机制,广播能接上包裹,传给接收者。这样和直接去直接改动类的成员变量相比,大大减少了耦合性。


发来的广播,需要继承BroadcastReceiver来接收他们。

对应于两个继承BroadcastReceiver的两个类ControlReceiver和UIUpdate。ControlReceiver根据当前音乐的播放状态,再发广播给UIUpdate进行更新。


当你关掉主页面,放到后台的播放,需要Service。而且ControlReceiver的动态注册就写在这里面。

this.startService(new Intent(this,MyMusicPlayerService.class));

一个打不死的东西,kill之后还能满血复活。这里用了MyMusicPlayerService去继承Service。


最后,我发现有个比我更厉害的人,一个大学玩大肠杆菌的培养基的,到后面自己编程,没完成不回家,从老师听来的,是个女的。。


 看的是吴亚峰老师的一本开发书,用了老师的一张背景图片,代码没用过老师的,因为自己之前先敲了。系统自带的ImageButton的图片少了停止,用了暂停代替。主要就是为了了解Service,Broadcast, Intent这些东西的结合。


附上源码:http://download.csdn.net/detail/iaiti/6439615



很晚了,去睡觉了。



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iaiti

赏顿早餐钱~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值