欢迎来到天天文库
浏览记录
ID:8973282
大小:57.00 KB
页数:8页
时间:2018-04-13
《service音乐播放器实例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Service音乐播放器实例Android的服务组件继承于android.app.Service类,实现一个服务,只要继承android.app.Service类,实现其生命周期中的关键方法并添加相应的服务功能就可以。像Activity等组件一样,Service也必须在AndroidManifest.xml中注册才能使用。下面通过实现一个音乐播放服务来说明Service的实现及其生命周期,该播放服务可以使用启动方式调用也可以使用绑定方式调用。音乐播放功能使用android.media.MediaPlayer类来实现,该类提供了丰富的API接口用于实
2、现音频、视频的播放功能,下面先简单介绍用到的几个MediaPlayer类方法。ncreate(Contextcontext,Uriuri):通过Uri创建一个MediaPlayer对象ncreate(Contextcontext,intresid):通过资源ID创建一个MediaPlayer对象nisPlaying():判断播放器是否正在播放,返回booleannpause():控制播放器暂停nprepare():准备同步数据nreset():重置MediaPlayer对象nsetLooping(booleanlooping):设置是否循环播放ns
3、tart():控制播放器开始播放nstop():控制播放器停止播放实现音乐播放Service功能的步骤如下:1)新建一个Android工程,创建一个继承于android.app.Service类的PlayerService类。代码如下:11publicclassPlayerServiceextendsService{2privatefinalStringTAG="MusicService";3privateMediaPlayerplayer;4privatefinalIBinderbinder=newMyBinder();5@Override6pu
4、blicvoidonCreate(){7Log.i(TAG,"onCreate...");8}9@Override10publicintonStartCommand(Intentintent,intflags,intsId){11Log.i(TAG,"onStartCommand...");12Stringstate=intent.getStringExtra("PlayerState");13if(state!=null)//判断客户端发送过来的指令参数14{15if(state.equals("START"))//播放16{start();}1
5、7if(state.equals("PAUSE"))//暂停18{pause();}19if(state.equals("STOP"))//停止20{stop();}21if(state.equals("STOPSERVICE"))//停止服务22{//调用stopSelf()关闭服务23stopSelf();24}25}26returnsuper.onStartCommand(intent,flags,sId);27}28@Override29//绑定方式调用时使用此函数30publicIBinderonBind(Intentintent){31
6、Log.i(TAG,"onBind...");32returnbinder;33}34//自定义类实现使用绑定方式调用时获得服务接口35publicclassMyBinderextendsBinder{36PlayerServicegetService(){37returnPlayerService.this;38}39}40publicvoidstart(){41if(player==null){42player=MediaPlayer.create(this,R.raw.hen_egg);43player.setLooping(false);4
7、4//防止prepareAsynccalledinstate8错误45if(player!=null)46{player.stop();}47player.prepare();48}49if(!player.isPlaying()){50Log.i(TAG,"playerstart...");51player.start();52}53}54publicvoidpause(){55if(player!=null&&player.isPlaying()){56Log.i(TAG,"playerPaused...");57player.pause();
8、58}59}60publicvoidstop(){61Log.i(TAG,"playerStoped...");62pla
此文档下载收益归作者所有