WEB开发网
开发学院手机开发Android 开发 Android 使用Service和Broadcast播放音乐文件 阅读

Android 使用Service和Broadcast播放音乐文件

 2010-11-05 00:57:58 来源:WEB开发网   
核心提示:intent.getExtras().getString("bc_receiver"); //1.正在播放 //使其暂停播放,并通知界面将Button的值改为"播放"(如果正在播放,Android 使用Service和Broadcast播放音乐文件(3),Button值是&quo
intent.getExtras().getString("bc_receiver"); //1.正在播放 //使其暂停播放,并通知界面将Button的值改为"播放"(如果正在播放,Button值是"暂停") if(mediaPlayer != null && mediaPlayer.isPlaying()){ mediaPlayer.pause(); sendBC4UpdateUI(1);//更新界面 } //2.正在暂停 else{ if(mediaPlayer == null){ mediaPlayer = new MediaPlayer();//如果被停止了,则为null try { mediaPlayer.setDataSource(audioPath);//设置播放的文件的路径 mediaPlayer.prepare(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } mediaPlayer.start(); sendBC4UpdateUI(0);//更新界面 } }

在onDestroy()方法中,要release掉mediaPlayer。

@Override public void onDestroy() { if(mediaPlayer !=null){ mediaPlayer.release();//停止时要release sendBC4UpdateUI(2);//更新界面 } super.onDestroy(); }

而在sendBC4UpdateUI()方法里,就是发送广播了。

代码

private void sendBC4UpdateUI(int flag) { intent2bc = new Intent(bc_receiver);//bc_receiver前面已有定义,是从Activity传过来的 //如果缺少下面这句,关掉再重新打开播放器里点“停止”并不能停掉 intent2bc.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); bundle2bc = new Bundle(); bundle2bc.putInt("backFlag", flag);//把flag传回去 intent2bc.putExtras(bundle2bc); sendBroadcast(intent2bc);//发送广播   //发送后,在Activity里的updateUIReceiver的onReceiver()方法里就能做相应的更新界面的工作了 }

3.最后,manifest.xml注册如下。

代码

< ?xml version="1.0" encoding="utf-8"?>.... < application android:icon="@drawable/icon" android:label="@string/app_name"> < service android:name="giuz.service.MyAudioService">< /service> < activity.... < /activity> < /application> < uses-sdk android:minSdkVersion="8" />< /manifest>

暂时就这样,以后可以通过改进做成一个mp3播放器。

上一页  1 2 3 

Tags:Android 使用 Service

编辑录入:coldstar [复制链接] [打 印]
赞助商链接