利用service实现音乐的后台播放

Service是一个生命周期长且没有用户界面的程序,当程序在各个activity中切换的时候,我们可以利用service来实现背景音乐的播放,即使当程序退出到后台的时候,音乐依然在播放。下面我们给出具体例子的实现:

 

当然,首先要在资源文件夹中添加一首MP3歌曲:



要实现音乐的播放,需要在界面中放置两个按钮,用来控制音乐的播放和停止,通过使用startService和stopService来实现这两个功能:




修改src下的ServiceDemoAvtivity.Java代码添加如下按钮事件的代码:

 

  1. <span style="font-size:16px;">Button start = (Button)findViewById(R.id.start);  
  2.         Button stop = (Button)findViewById(R.id.stop);  
  3.         Button.OnClickListener listener = new Button.OnClickListener(){  
  4.   
  5.             @Override  
  6.             public void onClick(View v) {  
  7.                 // TODO Auto-generated method stub  
  8.                 Intent intent = new Intent(getApplicationContext(),MusicService.class);  
  9.                 switch(v.getId()){  
  10.                     case R.id.start: startService(intent);break;  
  11.                     case R.id.stop: stopService(intent);break;  
  12.                 }  
  13.             }  
  14.         };  
  15.           
  16.         start.setOnClickListener(listener);  
  17.         stop.setOnClickListener(listener);  
  18. </span>  

下面是更为重要的service部分。创建一个MusicService继承于Service,然后通过startstop方法来控制音乐的播放。下面是MusicService.java中的关键代码:


  1. <span style="font-size:16px;">public void onStart(Intent intent, int startId) {  
  2.         // TODO Auto-generated method stub  
  3.         super.onStart(intent, startId);  
  4.         Toast.makeText(this"onStart", Toast.LENGTH_LONG).show();  
  5.         player = MediaPlayer.create(this, R.raw.eason);  
  6.         player.setLooping(true);  
  7.         player.start();  
  8.     }  
  9.   
  10. public void onDestroy() {  
  11.         // TODO Auto-generated method stub  
  12.         super.onDestroy();  
  13.         Toast.makeText(this"onDestroy", Toast.LENGTH_LONG).show();  
  14.         player.stop();  
  15.     }  
  16. </span>  


当然还需要在AndroidMainfest中声明MusicService


  1. <span style="font-size:16px;"><application  
  2.         android:icon="@drawable/ic_launcher"  
  3.         android:label="@string/app_name" >  
  4.         <activity  
  5.             android:name=".ServiceDemoActivity"  
  6.             android:label="@string/app_name" >  
  7.             <intent-filter>  
  8.                 <action android:name="android.intent.action.MAIN" />  
  9.   
  10.                 <category android:name="android.intent.category.LAUNCHER" />  
  11.             </intent-filter>  
  12.         </activity>  
  13.         <service android:name="MusicService" />  
  14.     </application>  
  15. </span>  


整个例子就构造完成了,部署到模拟器或者手机上就可以实现后台播放啦。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值