美文网首页
绑定服务_简易音乐播放器

绑定服务_简易音乐播放器

作者: 五万年前走丢了 | 来源:发表于2018-06-10 23:34 被阅读8次

    PlayService(播放器服务器)

    public class PlayService extends Service {
        private MediaPlayer player;
    
        @Override
        public void onCreate() {
            super.onCreate();
            player = MediaPlayer.create(this, R.raw.happiness);
        }
    
        // 第一步,创建胶水类
        public class MyBinder extends Binder {
            public PlayService getPlayService() {
                return PlayService.this;
            }
        }
    
    
        // 第二步,将胶水涂在Service表面,等待粘贴(绑定)
        @Override
        public IBinder onBind(Intent intent) {
            Log.d("1622", "service onBind");
            return new MyBinder();
        }
    
        // 播放
        public void start() {
            if (!player.isPlaying()) {
                player.start();
            }
        }
    
        // 暂停
        public void pause() {
            if (player.isPlaying()) {
                player.pause();
            }
        }
    
        // 停止
        public void stop() {
            player.stop();
        }
    
    
    
        @Override
        public boolean onUnbind(Intent intent) {
            stop();
            return super.onUnbind(intent);
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            player.release();
        }
    }
    

    MianActivity

    public class MainActivity extends AppCompatActivity implements ServiceConnection {
    
        private PlayService service;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        // 开始播放
        public void start(View view) {
            if (service == null) {
                // 第三步,将Activity和Service绑定
                Intent intent = new Intent(this, PlayService.class);
                bindService(intent, this, Context.BIND_AUTO_CREATE);
            } else {
                service.start();
            }
        }
    
        // 暂停播放
        public void pause(View view) {
            if (service != null) {
                service.pause();
            }
        }
    
        // 停止播放
        public void stop(View view) {
            if (service != null) {
                unbindService(this);
                service = null;
            }
        }
    
        // 第四步,绑定成功时,通过Service表面返回的胶水获取Service实例
        @Override
        public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
            PlayService.MyBinder binder = (PlayService.MyBinder) iBinder;
            // 第五步,获取Service实例,即可执行操作
            service = binder.getPlayService();
            service.start();
        }
    
        @Override
        public void onServiceDisconnected(ComponentName componentName) {
    
        }
    }
    

    布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="org.mobiletrain.android24_bindserviceplaymusicdemo.MainActivity">
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开始播放"
            android:onClick="start"/>
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="暂停播放"
            android:onClick="pause"/>
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="停止播放"
            android:onClick="stop"/>
    
    </LinearLayout>
    

    建立raw文件夹放MP3文件
    注册

     <service
                android:name=".PlayService"
                android:enabled="true"
                android:exported="true"></service>
    

    相关文章

      网友评论

          本文标题:绑定服务_简易音乐播放器

          本文链接:https://www.haomeiwen.com/subject/mazqeftx.html