利用Service组件播放音乐的案例.txt

来源:互联网 发布:云计算软件有哪些 编辑:程序博客网 时间:2024/06/06 06:42
新建servicepublic class MyService extends Service {    private MediaPlayer player;    public static final int PLAY=1;    public static final int PAUSE=2;    public static final int STOP=3;    public MyService() {    }    @Override    public IBinder onBind(Intent intent) {        // TODO: Return the communication channel to the service.        throw new UnsupportedOperationException("Not yet implemented");    }    @Override    public void onCreate() {        super.onCreate();        player=MediaPlayer.create(this,R.raw.hckz);//创建Service时候调用mediaplayer类    }    @Override    public int onStartCommand(Intent intent, int flags, int startId) {        int command=intent.getIntExtra("command",0);        switch (command){            case PLAY:                play();                break;            case PAUSE:                pause();                break;            case STOP:                stop();                break;        }        return super.onStartCommand(intent, flags, startId);    }    @Override    public void onDestroy() {        super.onDestroy();        if(player!=null){            player.stop();            player.release();//释放资源        }    }    //播放的方法    private void play(){        if(player!=null){            player.start();        }    }    //暂停的方法    private void pause(){        if(player!=null&&player.isPlaying()){//如果文件存在并且正在播放            player.pause();        }    }    //停止的方法    private void stop(){        if (player!=null){            player.stop();            //停止播放后不能再次播放,要准备后才能播放            try {                player.prepare();//再此准备播放            } catch (IOException e) {                e.printStackTrace();            }        }
在MainAcvitity中设置相应控件的跳转播放public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private Button btn_play,btn_pause,btn_stop,btn_stopservice,btn_stopacvitity;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn_play= (Button) findViewById(R.id.btn_play);        btn_pause= (Button) findViewById(R.id.btn_pause);        btn_stopservice= (Button) findViewById(R.id.btn_stopservice);        btn_stopacvitity= (Button) findViewById(R.id.btn_exitacvitity);        btn_stop= (Button) findViewById(R.id.btn_stop);        btn_play.setOnClickListener(this);        btn_pause.setOnClickListener(this);        btn_stop.setOnClickListener(this);        btn_stopservice.setOnClickListener(this);        btn_stopacvitity.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.btn_play:                startServiceCom(MyService.PLAY);                break;            case R.id.btn_pause:                startServiceCom(MyService.PAUSE);                break;            case R.id.btn_stop:                startServiceCom(MyService.STOP);                break;            case R.id.btn_stopservice:                Intent intent=new Intent(this,MyService.class);                stopService(intent);                break;            case R.id.btn_exitacvitity:                finish();                break;        }    }    public void startServiceCom(int command){        Intent intent=new Intent(this,MyService.class);        intent.putExtra("command",command);        startService(intent);//是向Service跳转,不是acvitity    }
0 0