服务版音乐播放器

    xiaoxiao2022-06-30  51

    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); } }
    转载请注明原文地址: https://ju.6miu.com/read-1125551.html

    最新回复(0)