




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广州xx学院Android程序设计实验报告Android程序设计实验报告专业班级计算机181实验日期2021.5.18姓名xx学号201xx实验名称Service编程指导老师xx(报告内容包括:实验目的、实验设备及器材、实验步骤、实验数据、图表及曲线处理、实验小结等)。实验目的了解如何创建服务;掌握服务的两种启动方式;掌握如何使用本地服务通信。实验要求使用服务通信,实现音乐播放器功能,实现音乐的播放、暂停、继续播放、退出。实验步骤(1)导入音乐文件和界面图片之后,开始创建布局,代码如下,效果图如图1-1所示。Buttonandroid:id=+id/btn_playandroid:layout
2、_width=0dpandroid:layout_height=40dpandroid:layout_margin=8dpandroid:layout_weight=1android:background=drawable/btn_bg_selectorandroid:text=播放音乐/Buttonandroid:id=+id/btn_pauseandroid:layout_width=0dpandroid:layout_height=40dpandroid:layout_margin=8dpandroid:layout_weight=1android:background=drawable
3、/btn_bg_selectorandroid:text=暂停播放/Buttonandroid:id=+id/btn_continue_playandroid:layout_width=0dpandroid:layout_height=40dpandroid:layout_margin=8dpandroid:layout_weight=1android:background=drawable/btn_bg_selectorandroid:text=继续播放/Buttonandroid:id=+id/btn_exitandroid:layout_width=0dpandroid:layout_h
4、eight=40dpandroid:layout_margin=8dpandroid:layout_weight=1android:background=drawable/btn_bg_selectorandroid:text=*/图1-1界面布局效果图(2)创建背景选择器btn_bg_selectorxml图1-1界面布局效果图(2)创建背景选择器btn_bg_selectorxml关键代码如下:/7110:(2MusicPIayer10:293r退出播放selectorxmlns:android= HYPERLINK /apk/res/android /apk/res/androidsha
5、peandroid:shape=rectanglecornersandroid:radius=3dp/solidandroid:color=#d4d4d4/itemandroid:state_pressed=falseshapeandroid:shape=rectanglecornersandroid:radius=3dp/solidandroid:color=#ffffff/shape/item/selector)(3)创建MusicService服务关键代码如下所示:publicclassMusicServiceextendsServiceprivateMediaPlayerplayer;
6、privateTimertimer;publicMusicService。OverridepublicIBinderonBind(Intentintent)returnnewMusicControl();OverridepublicvoidonCreate()super.onCreate();player=newMediaPlayer();/创建音乐播放器对象publicvoidaddTimer()/添加计时器用于设置音乐播放器中的播放进度条if(timer=null)timer=newTimer();/创建计时器对象TimerTasktask=newTimerTask()Overridepu
7、blicvoidrun()if(player=null)return;intduration=player.getDuration();/获取歌曲总时长intcurrentPosition=player.getCurrentPosition();/获取播放进度Messagemsg=MainActivity.handler.obtainMessage();/仓1建消息对象/将音乐的总时长和播放进度封装至消息对象中Bundlebundle=newBundle();bundle.putInt(duration,duration);bundle.putInt(currentposition,curre
8、ntposition);msg.setData(bundle);/将消息发送到主线程的消息队列MainActivity.handler.sendMessage(msg);/开始计时任务后的5毫秒,第一次执行task任务,以后每50。毫秒执行次timer.schedule(task,5,500);classMusicControlextendsBinderpublicvoidplay()tryplayer.reset();/重置音乐播放器/加载多媒体文件player=MediaPlayer.create(getApplicationContext(),R.raw.music);player.st
9、art();/播放音乐addTimer();/添加计时器catch(Exceptione)e.printStackTrace();publicvoidpausePlay()player.pause();/暂停播放音乐publicvoidcontinuePlay()player.start();/继续播放音乐publicvoidseekTo(intprogress)player.seekTo(progress);/设置音乐的播放位置OverridepublicvoidonDestroy()super.onDestroy();if(player=null)return;if(player.isPl
10、aying()player.stop();/停止播放音乐player.release();/释放占用的资源player=null;/将player置为空(4)编写界面交互代码关键代码如下:publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListenerprivatestaticSeekBarsb;privatestaticTextViewtv_progress,tv_total;privateObjectAnimatoranimator;privateMusicService.MusicControlmu
11、sicControl;MyServiceConnconn;Intentintent;privatebooleanisUnbind=false;/记录服务是否被解绑OverrideprotectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedlnstanceState);setContentView(R.layout.activity_main);init();privatevoidinit()tv_progress=(TextView)findViewById(R.id.tv_progress);tv_total=(Tex
12、tView)findViewById(R.id.tv_total);sb=(SeekBar)findViewById(R.id.sb);findViewById(R.id.btn_play).setOnClickListener(this);findViewById(R.id.btn_pause).setOnClickListener(this);findViewById(R.id.btn_continue_play).setOnClickListener(this);findViewById(R.id.btn_exit).setOnClickListener(this);intent=new
13、Intent(this,MusicService.class);/仓U建意图对象conn=newMyServiceConn();/创建服务连接对象bindService(intent,conn,BIND_AUTO_CREATE);/绑定服务/为滑动条添加事件监听sb.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener()OverridepublicvoidonProgressChanged(SeekBarseekBar,intprogress,booleanfromUser)/滑动条进度改变时,停止播放动画会调用此方法if
14、(progress=seekBar.getMax()/当滑动条滑到末端时,结束动画停止播放动画animator.pause();OverridepublicvoidonStartTrackingTouch(SeekBarseekBar)/滑动条开始滑动时调用OverridepublicvoidonStopTrackingTouch(SeekBarseekBar)/滑动条停止滑动时调用根据拖动的进度改变音乐播放进度intprogress=seekBar.getProgress();/获取seekBar的进度musicControl.seekTo(progress);/改变播放进度);ImageViewiv_music=(ImageView)findViewById(R.id.iv_music);animator=ObjectAnimator.ofFloat(iv_music,rotation,0f,360.0f);animator.setDuration(10000);/动画旋转一周的时间为。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业污染场地修复2025年技术方案成本效益分析及环境保护产业政策优化报告
- 自己的商铺租赁合同范本
- 美术合作办学合同协议书
- 社会人员招聘劳动协议书
- 风能叶模板维修合同范本
- 汽修维保合同协议书模板
- 自助美甲店转让合同范本
- 网络通讯协议书结构模板
- 第三方检测合同检测协议
- 砂场工人安全合同协议书
- 2025至2030风力发电用高强度螺栓行业发展趋势分析与未来投资战略咨询研究报告
- 校园绿化具体管理办法
- 重庆市主城区七校联考2024-2025学年高一下学期期末考试生物学试题
- 关于环境安全的论文
- 智慧教育基于大数据的个性化教学研究与实践
- 2025年中国铁路集团招聘笔试备考题库(带答案详解)
- 用工风险培训课件
- 海外现场安全健康环境管理(HSE)
- 无损检测超声波技术应用与原理
- 班主任与科任老师的协调教育
- 2025年广东省中考历史试题卷(含答案详解)
评论
0/150
提交评论