//添加获得sd卡的状态权限,和读取sd卡的权限
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
//    MainActivity中用三个按钮,播放,暂停,停止,发送服务到后台服务来控制
    public class MainActivity extends Activity implements OnClickListener {private Button puase;
        private Button stop;
        private Button start;

        @Override
        protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            start = (Button) findViewById(R.id.start);
            puase = (Button) findViewById(R.id.puase);
            stop = (Button) findViewById(R.id.stop);

            start.setOnClickListener(this);
            puase.setOnClickListener(this);
            stop.setOnClickListener(this);
        }@Override
        public void onClick(View v) {Intent intent = new Intent(MainActivity.this, Service1.class);
            switch (v.getId()) {case R.id.start:intent.putExtra("key", 1);
                    break;
                case R.id.puase:intent.putExtra("key", 2);
                    break;
                case R.id.stop:intent.putExtra("key", 3);
                    break;
                default:break;
            }startService(intent);
        }}//自定义类,继承Service服务
    public class Service1 extends Service {private MediaPlayer mediaplayer;
        private ArrayList<Music> list;
        private String path = "";
        private int index = 0;

        @Override
        public IBinder onBind(Intent intent) {return null;
        }@Override
        public void onCreate() {super.onCreate();
            mediaplayer = new MediaPlayer();
            list = new ArrayList<Music>();
            //读取SD卡
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {File file = Environment.getExternalStorageDirectory();
                path = file.getAbsolutePath();
            }list.add(new Music("男人歌", path + "/nanrenge.mp3"));
            list.add(new Music("夜色", path + "/yese.mp3"));
            list.add(new Music("漂洋过海来看你", path + "/piaoyang.mp3"));
            list.add(new Music("兄弟无数", path + "/xiongdiwushu.mp3"));
            //播放完成后自定播放下一曲
            mediaplayer.setOnCompletionListener(new OnCompletionListener() {@Override
                public void onCompletion(MediaPlayer mp) {index++;
                    play();
                }});
        }
    //用这个方法控制MainActivity发来的服务,控制音乐@Override
        public int onStartCommand(Intent intent, int flags, int startId) {int m = intent.getIntExtra("key", 0);
            switch (m) {case 1:play();
                    break;
                case 2:// 暂停
                    if (mediaplayer != null && mediaplayer.isPlaying())mediaplayer.pause();
                    break;
                case 3:// 停止
                    if (mediaplayer != null) {mediaplayer.stop();
                        stopService(intent);
                    }break;

                default:break;
            }return super.onStartCommand(intent, flags, startId);
        }
    //播放音乐private void play() {mediaplayer.reset();
            try {mediaplayer.setDataSource(list.get(index).getPath());
                mediaplayer.prepare();
            } catch (Exception e) {e.printStackTrace();
            }mediaplayer.start();
        }@Override
        public void onDestroy() {super.onDestroy();
            if (mediaplayer != null) {mediaplayer.release();
                mediaplayer = null;
            }}}

Service后台服务控制音乐的播放暂停和停止,播放完自动播放下一曲相关推荐

  1. 安卓开发,拼接屏幕、大屏幕、户外广告无人值守循环播放视频,图片。开机自动播放,断电后自动播放,重起后自动播放功能

    安卓开发,拼接屏幕.大屏幕.户外广告无人值守循环播放视频,图片.开机自动播放,断电后自动播放,重起后自动播放功能 因客户要求,开机自动播放视频,不需要电脑控制,通电自动循环播放视频. 电脑成本太高,最 ...

  2. linux禁用光驱自动播放,电脑光驱怎么设置禁止自动播放?

    光盘插入光驱之中,默认会自动播放,比较方便.但也给病毒的传播提供了便利.可以关闭自动播放的功能,完全可以由用户自己掌握如何运行. 1.开始→控制面板.或者点击任务栏上的控制面板. 2.控制面板→硬件和 ...

  3. html5手机不能自动播放音乐,H5案例---解决H5中背景音乐无法自动播放问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 四.完整代码 您的浏览器不支持 audio标签. // 音乐播放 function autoPlayMusic() { // 自动播放音乐效果,解决浏览器 ...

  4. html手机不能自动播放音乐,解决移动端浏览器 HTML 音频不能自动播放的三种方法...

    由于Android,IOS移动端的浏览器以及微信自带的浏览器为了用户更好的体验,规定不自动播放音频视频,默认屏蔽了autoplay,如果要想达到自动播放效果,需要单独处理,方法有以下几种: 第一种:添 ...

  5. 计算机win10开机音乐,大师传授win10系统电脑开机总是自动播放音乐的方案

    今天小编分享一下win10系统电脑开机总是自动播放音乐问题的处理方法,在操作win10电脑的过程中常常不知道怎么去解决win10系统电脑开机总是自动播放音乐的问题,有什么好的方法去处理win10系统电 ...

  6. html 添加audio 无法自动播放,移动端不支持audio自动播放解决方案

    在开发webapp时,有时候你可能要加点背景音乐,这时我们会用到HTML5音频Audio. 你可能会这样写: 您的浏览器不支持音频播放. 做完后我们放PC端测试可以完美的进行自动播放(当然,是在你浏览 ...

  7. php禁止视频自动播放,分享新浪视频禁止自动播放的方法

    前些天,一篇文章引用了新浪的一个视频,根据以往的经验,引用视频默认是不会自动播放的,但是新浪的视频引用后是自动播放的,这个体验不好,会干扰给网页浏览者,尤其是晚上的时候,打开网页却出来个播放广告的声音 ...

  8. php实现自动播放ppt,JavaScript_jquery实现简单的自动播放幻灯片效果,本文实例讲述了jquery实现简单 - phpStudy...

    jquery实现简单的自动播放幻灯片效果 本文实例讲述了jquery实现简单的自动播放幻灯片效果.分享给大家供大家参考.具体实现方法如下: html部分: Pretty cool eh? This s ...

  9. u盘自动运行bat_如何让u盘插入电脑后自动播放 u盘插入电脑后自动播放方法

    相信大家都知道U盘有一个自动播放的功能,一插入电脑它就自动运行某个程序,本来这个功能是为了大家能更方便的使用U盘,但是由于这个功能经常被病毒利用,所以现在很多杀毒软件检查到AUTORUN.INF文件就 ...

最新文章

  1. 空间统计分析_5.5 空间数据库的发展趋势
  2. 在ie7中overflow: hidden失效问题哦及解决方案
  3. VC2019消息框编程总结
  4. 【数据结构-图】1.图的构造和遍历(基本理论+代码)
  5. JavaScript substr() 方法
  6. 21-特征匹配方法(Brute-Force蛮力匹配)
  7. 推动Windows的限制:进程和线程
  8. 浅谈Hybrid技术的设计与实现第二弹
  9. 第k小的数(二分、partition)
  10. 手动添加linux用户
  11. C# 计算一点绕另一点旋转一定角度后新点的坐标
  12. mysql 丛集_MYSQL
  13. EF架构~为ObjectContext类型加个Find方法
  14. 计算机系统更新不上怎么办理,电脑系统更新打不开怎么办
  15. ai 道德_AI如何提升呼叫中心的道德水平?
  16. html代码表白_七夕表白代码,樱花特效+爱心特效+花瓣+评论留言功能等
  17. ISO50001认证辅导,ISO50001能源管理体系的框架审核通过系统的提高能源效率和消耗
  18. web第二章 namp和massan扫描技术
  19. mysql绘制er图菱形表示什么意思_ER图中菱形表示的是()
  20. .NET Core 之 七 EF Core(四)

热门文章

  1. 443端口被占用的解决方案
  2. 计算机服务管理光驱,电脑检测不到光驱怎么办
  3. 从熵的角度去看公司变迁
  4. 中专计算机英语期中考试试卷答案,职业中专英语期中考试试卷
  5. 计算机组装与维修期中试卷,计算机组装与维修期中试卷答案
  6. Win7添加局域网打印机的办法
  7. (精华)2020年6月26日 C#类库 百度api发送短信验证码帮助类
  8. 信息安全工程师笔记-加密模式ECB、CBC、CFB、OFB、CTR
  9. Linux shell for 循环
  10. Linux shell获取当前登录的用户名