黑马程序员安卓教程音乐播放器之编写服务.docx_第1页
黑马程序员安卓教程音乐播放器之编写服务.docx_第2页
黑马程序员安卓教程音乐播放器之编写服务.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

音乐播放器之编写服务在“音乐播放器之基本框架”中,我们已经编写了音乐播放器的页面实现,但具体的播放逻辑并没有实现。接下来,我们需要做的就是:响应ListView的条目点击事件,当点击某一个条目时开启服务,在该服务中播放选中的音乐。具体步骤如下:1 编写服务类在项目中新建一个类命名为:MusicService并使之继承Service。代码如例1-1所示:例1-1public class MusicService extends Service Overridepublic IBinder onBind(Intent intent) return null;服务类创建出来之后,我们需要在项目清单文件中声明该服务。2 编写服务类中的方法在服务类MusicService中,我们要实现两个功能,分别是循环音乐的播放功能和当前所播放音乐是哪一首的功能。播放功能play方法代码如例1-2:例1-2public void play(final List infos,final int position) System.out.println(后台 播放:+infos.get(position).getPath();new Thread()public void run() currentPostion=position;try Thread.sleep(5000); / 使当前线程是5秒,模拟音乐播放 catch (InterruptedException e) e.printStackTrace();int newposition =position+1; / 播放下一首音乐的下标int pos =newposition%infos.size();currentPostion=pos;play(infos, pos); / 循环播放下一首音乐;.start();记录当前所播放哪一首音乐getCurrentPostion,代码如例1-3:例1-3public int getCurrentPostion () return currentPostion;在MusicService类中定义一个int类型的变量currentPostion,在方法play中更新currentPostion的值。3 编写中间人在服务MusicService中编写中间人内部类MyBinder,具体步骤如下:l 编写接口类IMusicService,在该类中定义两个方法。代码如例1-4所示:例1-4public interface IMusicService public void callplay(final List infos,final int position); /播放音乐public int callGetCurrentPositon();/当前播放音乐时哪一首l MusicService类中编写内部类MyBinder,使之继承Binder并实现IMusicService接口。代码如例1-5:例1-5private class MyBinder extends Binder implements IMusicServiceOverridepublic void callplay(List infos, int position) play(infos, position);Overridepublic int callGetCurrentPositon() / TODO Auto-generated method stubreturn getCurrentPostion();例1-5中MyBinder实现了IMusicService接口,所以我们要在该类中重写接口类中所定义的方法。方法callplay实现了对服务类内部方法play的调用;方法callGetCurrentPositon实现了对服务类内部的方法getCurrentPostion调用。即实现了通过中间人来调用服务里面的方法。l 实现服务类onBind方法,返回中间人对象。代码如例1-6:例1-6Overridepub

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论