首页 > 学院 > 开发设计 > 正文

笔记——BindService实现音乐播放

2019-11-06 09:51:36
字体:
来源:转载
供稿:网友
先创建一个moudle,在res文件夹中创建raw文件夹,将音乐文件存放到raw中。1.在布局文件中添加三个按钮,播放,暂停,停止。2.在java文件中实例化,并添加监听3.创建BindService.java文件,并继承自Service,在自定义内部类中,写一个方法,方法中有一个赋值操作,把参数列表中的值赋值给Service当前类的值,并把onBind的返回值改为创建的方法;代码如下:public%20class%20BindService%20extends%20Service{PRivate%20MediaPlayer%20mMediaPlayer;@Nullable@Overridepublic%20IBinder%20onBind(Intent%20intent)%20{return%20new%20MyMusic();}public%20class%20MyMusic%20extends%20Binder{public%20void%20play(){mMediaPlayer.start();}public%20void%20pauser(){mMediaPlayer.pause();}public%20void%20stop(){mMediaPlayer.stop();mMediaPlayer%20=MediaPlayer.create(BindService.this,R.raw.huanlezhongguonian);}}@Overridepublic%20void%20onCreate()%20{super.onCreate();mMediaPlayer%20=%20MediaPlayer.create(this,R.raw.huanlezhongguonian);}@Overridepublic%20void%20onDestroy()%20{super.onDestroy();mMediaPlayer.release();}}4.在主类中,实例化MyMusic,.在serviceConnection方法中,实现赋值操作,即自定义好的类的变量名=iBinder,然后强制类型转换5.在初始化方法中实例化Intent,选择跳转到哪个页面,启动bindService服务。6.按钮监听的动作:7.在最后添加onDestory,从线程结束bindService;MainActivity.java代码:public%20class%20MainActivity%20extends%20AppCompatActivity%20implements%20View.OnClickListener{private%20Button%20btn_start,btn_pause,btn_stop;private%20BindService.MyMusic%20mMyMusic;ServiceConnection%20conn=new%20ServiceConnection()%20{@Overridepublic%20void%20onServiceConnected(ComponentName%20name,%20IBinder%20service)%20{mMyMusic=%20(BindService.MyMusic)%20service;}@Overridepublic%20void%20onServiceDisconnected(ComponentName%20name)%20{}};@Overrideprotected%20void%20onCreate(Bundle%20savedInstanceState)%20{super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent%20intent%20=new%20Intent();intent.setClass(this,BindService.class);bindService(intent,conn,BIND_AUTO_CREATE);initView();}private%20void%20initView()%20{btn_start%20=%20(Button)%20findViewById(R.id.button);btn_pause%20=%20(Button)%20findViewById(R.id.button2);btn_stop%20=%20(Button)%20findViewById(R.id.button3);btn_start.setOnClickListener(this);btn_pause.setOnClickListener(this);btn_stop.setOnClickListener(this);}@Overridepublic%20void%20onClick(View%20v)%20{switch%20(v.getId())%20{case%20R.id.button:if(mMyMusic!=null){mMyMusic.play();}break;case%20R.id.button2:if(mMyMusic!=null){mMyMusic.pause();}break;case%20R.id.button3:if(mMyMusic!=null){mMyMusic.stop();}break;}}@Overrideprotected%20void%20onDestroy()%20{super.onDestroy();unbindService(conn);}}8.在清单文件中添加service权限<service%20android:name=".BindService"/>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表