




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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至2030中国现场护理测试(POCT)行业产业运行态势及投资规划深度研究报告
- 2025至2030中国玉米油行业发展趋势分析与未来投资战略咨询研究报告
- 家校联结科技铺路
- 智慧城市基础设施的智能化运维策略
- 智慧城市公共空间LED照明的智能化管理
- 从文化交流角度看篮球教育的国际化
- 教育游戏化设计原则与挑战共克
- 商业培训中LMS的效果评估与案例分享
- 增强教育行业的数据保护能力与技术创新研究
- 伦理引导下的教育技术创新与发展
- 2023-2024学年上海市普陀区三年级(上)期末数学试卷
- 软件系统运行维护流程及的方案
- 短剧演员合同范本
- 一年级数学下册100以内加减法口算练习题一
- 国开(安徽)2024年《内部控制》形考任务1-2答案终考答案
- 物 理2024-2025学年人教版初中物理八年级上册各章节知识点讲解
- 100以内加减法竖式计算300道及答案
- 儿科有关疾病课件
- 2024年海南省海口市小升初数学试卷(含答案)
- 高级卫生专业技术资格考试慢性非传染性疾病控制(088)(正高级)试题与参考答案(2024年)
- 台球俱乐部股东合同范本
评论
0/150
提交评论