版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024用作项目资金借款合同范本
- 2024保温工程专业分包合同(模板)
- 2024年数据中心服务器租赁合同标的及属性
- 2024年旧房买卖合同(含建筑装修装饰)
- 2024年标准精装修住宅租赁合同样本版B版
- 屠宰场工厂供电课程设计
- 2024年专项担保合同范本
- 2024年度借款合同起草要点与合同履行义务3篇
- 2024年教育培训机构合作运营合同
- 2024版特许经营权授予协议合同3篇
- 2025年电工技师考试题库及答案
- 《体育场馆照明方案》课件
- 中南大学攻防实验室方案
- 明确目标推动团队发展计划
- 《傅雷家书》读书分享
- 2024年国家公务员考试《申论》真题(副省级)及答案解析
- 福建省厦门市2023-2024学年高一上学期语文期末考试试卷(含答案)
- 厨师培训食品安全和卫生培训考核试卷
- DB15T 435-2020 公路风吹雪雪害防治技术规程
- 北京邮电大学《自然语言理解》2022-2023学年期末试卷
- 2025年江苏高中物理学业水平合格性考试试卷试题(含答案解析)
评论
0/150
提交评论