服务版音乐播放器

来源:互联网 发布:视频点播php源码 编辑:程序博客网 时间:2024/05/01 15:35

1.自定义一个类继承Service

public class MyService extends Service {    private int wz=0;    private MediaPlayer mp;    @Override    public IBinder onBind(Intent intent) {        return new MyBinder();    }    public class MyBinder extends Binder implements Serializable{        public void play(String path, int arg2) {            BoFang(path, arg2);        }        public void stop() {            mp.stop();            mp.reset();            mp=null;        }    }    private void BoFang(String path, int arg2) {        if (mp == null) {            playMusic(path);        } else {            if (wz==arg2) {                if (mp.isPlaying()) {                    mp.pause();                }                else{                    mp.start();                }            }            else{                mp.stop();                mp.reset();                playMusic(path);            }        }        wz=arg2;    }    private void playMusic(String path) {        mp = new MediaPlayer();        try {            mp.setDataSource(path);            mp.prepare();            mp.start();        } catch (Exception e) {            e.printStackTrace();        }    }}

2.配置清单文件

 <service android:name="com.example.service.MyService" >        </service>

3.开启服务

public class Main2Activity extends Activity {    private ListView lv;    private MyBinder binder;    //定义集合存放音乐    List<Music> list=new ArrayList<Music>();    ServiceConnection conn=new ServiceConnection() {        @Override        public void onServiceDisconnected(ComponentName name) {        }        @Override        public void onServiceConnected(ComponentName name, IBinder service) {            System.out.println("binder  123");            binder=(MyBinder) service;        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        init();        //开启服务        Intent service=new Intent(this,MyService.class);        bindService(service, conn,BIND_AUTO_CREATE);        //得到集合        Intent intent = getIntent();        Object[] mu= (Object[]) intent.getSerializableExtra("list");        for (Object object : mu) {            //将音乐保存到集合            list.add((Music)object);        }        MyAdapter adapter=new MyAdapter(list, this);        lv.setAdapter(adapter);        lv.setOnItemClickListener(listener);    }    OnItemClickListener listener=new OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,                long arg3) {            Music music = list.get(arg2);            if (binder!=null) {    //播放音乐          binder.play(music.getFile().getPath(),arg2);                Intent intent=new Intent(Main2Activity.this,Main3Activity.class);                intent.putExtra("music", music);                intent.putExtra("binder",binder);                startActivity(intent);            }        }    };    //初始化控件    private void init() {        lv=(ListView)findViewById(R.id.lv);    }}
1 0