版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告(2023/2023学年第一学期)课程名称软件技术系列课程(Andr。id基础)实验名称Android广播、线程、服务与多媒体开发实验时间2023年12月9日指导单位计算机学院、诚迈科技(南京)公司指导教师学生姓名班级学号学院(系)计算机学院专业软件工程(计算机软件与服务外包)成批阅人王彦日期2023-12-四、实验小结(涉及问题和解决方法、心得体会等).对于sendBroadCast的intent对象,需要设立其actionname;.推荐使用显式指明receiver,在配置文献AndroidManifest.xml指明;.一个receiver可以接受多个action;.每次接受广播都会重新生成一个接受广播的对象,再次调用onReceive;.在BroadCast中尽量不要解决太多逻辑问题,建议复杂的逻辑交给Activity或者Service去解决。通过这次实验,让我对Broadcast、特别是Service有了更进一步的结识,还让我意识到编程方面和知识体系机构方面存在的局限性。总之,这次实验让我Android编程能力有了一定的提高。运用这次实验,也将我们的大作业更加完善。
绩09实验报告实验名称Android广播、线程、服务与多媒体开发指导教师实验类型实验实验学时4实验时间2023-12-9一、实验目的和规定验证Broadcast的发送与接受验证多线程间的数据传递验证Service的使用方法验证多媒体开发中音频、视频、或图像的采集与播放编写一个Android小程序规定:1、使用广播传递数据或信息2、使用多线程3>适当应用Service4、实现至少一种多媒体功能二、实验环境(实验设备)PC(Window7).Eclipse三、实验原理及内容在这个程序中涉及到了Receiver和BroadcastReceiver的结合使用,一方面在AndroidManifest.xml中注册Receiver,实现可以在后台播放音乐的功能。通过CommandReceiver类实现接受前台Activity发送的播放命令的Intent。在CommandReceiver类中,有后台Service注册的接受前台控制命令Intent的Receiver,广播播放状态变化的Intent代码pub1icclassMusicServiceextendsServiceimp1ementsRunnable{®privateMediaP1ayerp1ayer;privateList<Music>lists;publicstaticint_id=1;//当前播放位置。pub1icstaticBooleanisRun=true;。publicLrcProcessmLrcProcess;。pub1icLrcViewmLrcView;publiestaticintpLaying_id=0;publicstaticBocleanpLaying=false;@0verride。publicIBinderonBind(Intentarg0){。//TODOAuto-generatedmethodstubooreturnnull;。}@0verride»pub1icvoidonCreate(){//TODOAuto—generatedmethodstub。。lists=MusicList,getMusicDa?a(getApp1icationContext());。oSeekBarBroadcastReceiverreceiver=newSeekBarBroadcastReceiver();。IntentFi1terfi1ter=newIntentFiIter(".kar1.seekBar");。this.registerReceiver(receiver,filter);«newThread(this),start();。。super.onCreate();)@0verridepub1icvoidonStart(Intentintent,intstartId){TODOAuto—generatedmethodstubStringplay=intent.getStringExtra("play");—id=intent.getIntExtra("id",1);。。讦(play,equals("play")){(nul1!=p1ayer){ooooplayer.release();。…player=null;03。}。。。p1ayMusic(_id);«}elseif(play.equa1s("pause")){(null!=player){…p1ayer.pause();000}。。}e1seif(play.equals("playing")){°。。if(player!=null){。o。叩1ayer.start();。。}e1se{p1ayMusic(_id);}e1seif(play.equals("replaying")){«®}elseif(play.equals("first")){。ointid=intent,getintExtra("id",0);。。p1ayMusic(id);。}elseif(play.equals("rewind**)){。ointid=intent.getIntExtra("id",0);oooplayMusic(id);so}elseif(play.equals("forward")){oeointid=intent.getlntExtra("id'1,0);。playMusic(id);。。}elseif(play.equals("last")){。bintid=intent.getIntExtra("id",0);。splayMusic(id);。}。privatevoidplayMusic(intid){。/////////////////////////初始化歌词配置〃〃〃///unu1111////iiomLrcProcess=newLrcProcess();。//读取歌词文献。mLrcProcess.readLRC(lists.get(_id).getUri());。//传回解决后的歌词文献o1rcList=mLrcProcess.getLrcContent();。。MusicActivity.Lrc_view,setSentenceEntities(1rcList);°°切换带动网显示歌词MusicActivity.Lr(?_kiew.setAnimation(AnimationUtils.LoadAnimation(。。。MusicService.this,R.anim.a/pha_z));,〃启动线程»mHandler.post(mRunnab1e);。。〃//〃/////〃//〃〃////〃初始化歌词配置〃///〃///〃〃〃〃//III//if(null!=player){。。叩layer,release();®®player=nu11;°}。if(id>=lists.size()-1){s。5_id=lists.size()—1;a0}elseif(id<=0){,_id=0;00}。Musicm=lists.get(_id);oostringurl=m.getUr1();o®UrimyUri=Uri.pc?rse(url);oplayer=newMediaPlayer();。。player.reset();«p1ayer.setAudioStreamType(AudioManager.STREAM_MUSIC);。atry(。。。player,setDataSource(getApplicationContext(),myUri);。player,prepare();。。}catch(11lega1ArgumentExceptione){。。//TODOAuto-generatedcatchb1ocks。e.printStackTrace();。。}catch(SecurityExceptione){。。〃TODOAuto—generatedcatchb1ock。e.printStackTrace();}catch(I1legalStateExceptione){。。。//TODOAuto—generatedcatchblock。a。e.printStackTrace();}catch(IOExceptione){。。。〃TODOAuto-generatedcatchbiock。。。0.printStackTrace();eo}player.start();叩1ayer.setOnCompletionListener(newOnComp1etionListener(){。@Overrideao&publicvoidonCompletion(MediaPlayermp){。。。。//TODOAuto—generatedmethodstub。。//下一首,。。if(MusicActivity.isLoop==true){。。。叩1ayer.reset();o®®Intentintent=newIntent(".karp1etion");ooooosendBroadcast(intent);s。。_id=_id+1;ooooplayMusic(_i(/);。。。}else{//单曲播放。。。。player.re$et();。a»aIntentintent=newIntent(".p1etion");…3。sendBroadcast(intent);°b°°叩]ayMusic(_/d);oooo)0Q。}。。});。player.setOnErrorListener(new0nErrorListener(){ooo@0verride。。。publicboo1eanonError(MediaP1ayermp,intwhat,intextra){。。。〃TODOAuto-generatedmethodstubcooif(nu11!=player){。…p1ayer.release();。。p1ayer=null;006}oMusicm=lists.get(_id);oooStringur1=m.getUrl();ooosUrimyllri=Uri.parse(url);。。。。player=newMediaP1ayer();。…player.reset();ooooplayer.setAudioStreamType(AudioManager.STREAM_MUSIC):。。。,。player.setDataSource(getApplicationContext(),myllri);。a。。player.prepare();。。。。}catch(IliegalArgumeritExceptione){3//TODOAuto-generatedcatchblock。。。3。e.printStackTrace();°。。,}catch(SecurityExceptione){。。。〃TODOAuto-generatedcatchblocke.printstackTrace();。。。。}catch(IllegalStateExceptione){。。。//TODOAuto-generatedcatchb1ock—oe.printStackTrace();。s}catch(lOExceptione){。。。。//TODOAuto-generatedcatchblock。。。oe.printStackTrace();OQ0}。。。。player.start();。。。,returnfaIse;,)00});°}。privatec1assSeekBarBroadcastReceiverextendsBroadcastReceiver(。。@0verride。。publicvoidonReceive(Contextcontext,Intentintent){。a//ToDoAuto—generatedmethodstub。ointseekBarPosition=intent.getlntExtra("seekBarPosition”,0);。。。//System.out.println("-"+seekBarPosition);。。®player.seekTo(seekBarPosition*player.getDuration()/100);。»player.start();。}o@0verridepublicvoidrun(){o//TODOAuto-generatedmethodstub。while(isRun){。atry{°。。3Thread.sLeep(200);。}catch(InterruptedExceptione){。。。//TODOAuto—generatedcatchblockooooe.printStackTrace();00}oif(nu11!=p1ayer){。。intposition=player,getCurrentPosition();totai=p1ayer.getDuration();。。。Intentintent=newIntent("gress");。。。。intent.putExtra("position",position);intent.putExtra("total",totai);。sendBroadcast(intent);。)。。。讦(nu11!=player){(player.isPlaying()){0oc,opLaying=true;°°0°}else{。。。。。pLaying=false;d0d}eoo},}。}HandlermHandler=newHandler();。//歌词滚动线程。RunnablemRunnab1e=newRunnable(){。。@Override。。publicvoidrun(){。。。〃TODOAuto—generatedmethodstub。。MusicActivity.trc_v/ew.SetIndex(Lrclndex());o»«•MusicActivity.Lrc_view.invalidate();®mHand1er.postDe1ayed(mRunnable,100);d0}};。//创建对象privateList<LrcContent>IrcList=newArrayList<LrcContent
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度分享大全人事管理篇十篇
- 单位管理制度呈现大合集人事管理十篇
- 《行政职业能力测验》山西省吕梁地区岚县2024年公务员考试全真模拟试卷含解析
- 《喜迎中秋模板》课件
- 新餐饮浪潮的魅力
- 重症监护室护士工作总结
- 妇科护士的工作心得
- 2023年-2024年项目部安全管理人员安全培训考试题及答案基础题
- 2023-2024年项目管理人员安全培训考试题答案典型题汇编
- 2023年-2024年新员工入职安全教育培训试题含答案【突破训练】
- 光伏电站运维详细版手册
- 食品安全应急管理和突发事故报告制度
- 艺术学概论第一章-彭吉象
- 51job在线测评题集
- 2024新教科版一年级科学上册全册教案
- 2024儿童身高现状报告
- 趣味知识问答100道
- 紫砂壶介绍课件
- 2023年度学校食堂食品从业人员考核试题(附答案)
- 伊朗政府与政治课件
- 上交所金桥数据中心用户手册
评论
0/150
提交评论