分享

Android多媒体学习六:利用Service实现背景音乐的播放

 arm_embed 2012-12-07

  1.             audioService.haveFun();  
  2.         }  
  3.     }  
  4. }  

2、Service类

  1. package demo.camera;  
  2. import android.app.Service;  
  3. import android.content.Intent;  
  4. import android.media.MediaPlayer;  
  5. import android.os.Binder;  
  6. import android.os.IBinder;  
  7. import android.widget.MediaController.MediaPlayerControl;  
  8. /** 
  9.  * 为了可以使得在后台播放音乐,我们需要Service 
  10.  * Service就是用来在后台完成一些不需要和用户交互的动作 
  11.  * @author Administrator 
  12.  * 
  13.  */  
  14. public class AudioService extends Service implements MediaPlayer.OnCompletionListener{  
  15.       
  16.     MediaPlayer player;  
  17.       
  18.     private final IBinder binder = new AudioBinder();  
  19.     @Override  
  20.     public IBinder onBind(Intent arg0) {  
  21.         // TODO Auto-generated method stub  
  22.         return binder;  
  23.     }  
  24.     /** 
  25.      * 当Audio播放完的时候触发该动作 
  26.      */  
  27.     @Override  
  28.     public void onCompletion(MediaPlayer player) {  
  29.         // TODO Auto-generated method stub  
  30.         stopSelf();//结束了,则结束Service  
  31.     }  
  32.       
  33.     //在这里我们需要实例化MediaPlayer对象  
  34.     public void onCreate(){  
  35.         super.onCreate();  
  36.         //我们从raw文件夹中获取一个应用自带的mp3文件  
  37.         player = MediaPlayer.create(this, R.raw.tt);  
  38.         player.setOnCompletionListener(this);  
  39.     }  
  40.       
  41.     /** 
  42.      * 该方法在SDK2.0才开始有的,替代原来的onStart方法 
  43.      */  
  44.     public int onStartCommand(Intent intent, int flags, int startId){  
  45.         if(!player.isPlaying()){  
  46.             player.start();  
  47.         }  
  48.         return START_STICKY;  
  49.     }  
  50.       
  51.     public void onDestroy(){  
  52.         //super.onDestroy();  
  53.         if(player.isPlaying()){  
  54.             player.stop();  
  55.         }  
  56.         player.release();  
  57.     }  
  58.       
  59.     //为了和Activity交互,我们需要定义一个Binder对象  
  60.     class AudioBinder extends Binder{  
  61.           
  62.         //返回Service对象  
  63.         AudioService getService(){  
  64.             return AudioService.this;  
  65.         }  
  66.     }  
  67.       
  68.     //后退播放进度  
  69.     public void haveFun(){  
  70.         if(player.isPlaying() && player.getCurrentPosition()>2500){  
  71.             player.seekTo(player.getCurrentPosition()-2500);  
  72.         }  
  73.     }  
  74. }  

3、在清单文件AndroidManifest.xml中配置Service

 

        <service
            android:name=".AudioService" />

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多