/**

* Content:后台播放音乐达到保活目的

* Actor:韩小呆 ヾ(✿゚▽゚)ノ

* Time: 2018/10/12 10:47

* Update:

* Time:

*/

public class SingASongService extends Service {

private MediaPlayer mMediaPlayer;

private Thread thread;

@Override

public IBinder onBind(Intent intent) {

return null;

}

@Override

public void onCreate() {

super.onCreate();

MyThread myThread = new MyThread();

thread = new Thread(myThread);

mMediaPlayer = MediaPlayer.create(MainApplication.getInstance(), R.raw.no_kill);

mMediaPlayer.setLooping(true);

LogUtils.d("onCreate() 创建播放对象:" + mMediaPlayer.hashCode());

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

thread.start();

LogUtils.d("播放时 线程名称:" + thread.getName());

return START_STICKY;

}

//开始、暂停播放

private void startPlaySong() {

if (mMediaPlayer == null) {

mMediaPlayer = MediaPlayer.create(MainApplication.getInstance(), R.raw.no_kill);

LogUtils.d("音乐启动播放,播放对象为: " + mMediaPlayer.hashCode());

mMediaPlayer.start();

} else {

mMediaPlayer.start();

LogUtils.d("音乐启动播放,播放对象为: " + mMediaPlayer.hashCode());

}

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

if (mMediaPlayer != null) {

mMediaPlayer.pause();

LogUtils.d("音乐启动播放,播放对象为: " + mMediaPlayer.hashCode());

int progress = mMediaPlayer.getCurrentPosition();

LogUtils.d("音乐暂停,播放进度:" + progress);

}

}

@Override

public void onDestroy() {

super.onDestroy();

mMediaPlayer.pause();

LogUtils.d("恢复播放 时当前播放器对象:" + mMediaPlayer.hashCode());

stopPlaySong();

LogUtils.d("应用播放服务被杀死,正在重启");

LogUtils.d("目标播放工作线程是否存活:" + thread.isAlive());

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

startForegroundService(new Intent(getApplicationContext(), SingASongService.class));

} else {

startService(new Intent(getApplicationContext(), SingASongService.class));

}

}

//停止播放销毁对象

private void stopPlaySong() {

if (mMediaPlayer != null) {

mMediaPlayer.stop();

LogUtils.d("音乐停止播放,播放对象为:" + mMediaPlayer.hashCode());

LogUtils.d("音乐播放器是否在循环:" + mMediaPlayer.isLooping());

LogUtils.d("音乐播放器是否还在播放:" + mMediaPlayer.isPlaying());

mMediaPlayer.release();

LogUtils.d("播放对象销毁,播放对象为:" + mMediaPlayer.hashCode());

mMediaPlayer = null;

}

}

class MyThread implements Runnable {

@Override

public void run() {

startPlaySong();

}

}

}

android音乐播放器保活,Android 自用 App保活——音乐播放保活适配8.0 (贼好用) | 韩小呆...相关推荐

  1. Android 11.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决

    1.概述 在11.0的rom定制化开发中,在点击系统自带的播放器以后,播放音乐的时候,在最近任务栏recents列表中,点击全部清除,发现音乐播放器还在播放音乐,导致出现bug,完整的 解决方法,肯定 ...

  2. android音乐播放器文章,Android论文音乐播放器文章.doc

    毕业论文毕业设计开题报告论文报告设计报告可行性研究报告 移动互联网开发 结业论文设计 学生姓名: 黄敏 学 号: k031241508 班 级: k0312415 论文题目: 音乐播放器 摘要: 当今 ...

  3. android 音乐播放器论文,Android音乐播放器论文-Android文档类资源

    基于android系统的音乐播放器论文.里边有详细的介绍,没有代码.只是单独的一个论文. XXX科技大学本科生毕业设计(论文) 摘要 当今社会的生活节奏越来越快,随着硬件移动设备的越来越先进,人们 对 ...

  4. 天天动听音乐播放器应用android源码下载

    给大家分享我刚刚在网上找到的一个很难得的音乐播放器应用源码,天天动听音乐播放器应用android源码下载,喜欢的android开发的朋友可以下载学习看看. 源码下载: http://code.662p ...

  5. android音乐播放器git,Android音乐播放器

    Android音乐播放器 介绍 Android音乐播放器开发 进度 算是全部完成了,后续只会改进了. 如何使用 按这篇博客修改一下gradle相关文件,匹配自己的开发环境 日志 2020.12.15 ...

  6. android vr播放器 开发,Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放...

    本文将带你了解Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放,希望本文对大家学Android有所帮助. Androi ...

  7. android播放器1004,Android音频开发MediaPlayer(-38,0)(-1004)错误解决

    最近在开发音视频,我用的都是mediaplayer,有时会出现error(-38, 0),MediaPlayer: stop called in state 0 或者是其它错误,应该是在还未就绪的情况 ...

  8. android 播放器封装,Android视频播放最全总结:MediaPlayer+TextureView封装一个完美实现全屏、小窗视频播放器,附项目源码...

    原标题:Android视频播放最全总结:MediaPlayer+TextureView封装一个完美实现全屏.小窗视频播放器,附项目源码 作者:xiaoyanger 来源:http://www.jian ...

  9. Android短视频播放器组件库GSYVideoPlayer和仿抖音切换DKVideoPlayer可以悬浮框及滑动小屏播放

    原文地址:https://blog.csdn.net/u011287484/article/details/105202121/ 实现安卓上的短视频播放器功能,有两个好用的组件库GSYVideoPla ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task15. 有效的括号
  2. R语言ggplot2可视化将X轴置于ggplot2图表顶部实战
  3. 批量按照文件大小排序并修改文件名
  4. dom解析和生成XML文件
  5. 深度学习(四十)——深度强化学习(3)Deep Q-learning Network(2), DQN进化史
  6. MS17-010漏洞复现
  7. 淘宝如何保障业务稳定性——诺亚(Noah)自适应流控
  8. java 动态网页_JavaWeb01-动态网页
  9. 智能硬件创业2周内快速做出产品原型
  10. 【Flink】Flink 1.9 版本 web UI 突然没有日志
  11. LAMP 3.1 mysql的root密码重置
  12. 基于大数据的人工智能象棋
  13. 5gwifi信道哪个最好,wifi信道在哪里设置如何检测哪个路由器信道最快
  14. DDR扫盲——DDR中的名词解析
  15. 怎么用电脑屏幕录制功能录制游戏视频
  16. 回音消除--富迪科技
  17. 什么是数据科学家与数据科学
  18. mysql 报错Incorrect string value: '\xF0\x9F\x98\x84' 解决方案
  19. 30万人追更,年度重磅Go图书出版,百万流量博主带你学习Go底层原理
  20. 大数据思维,到底是什么?

热门文章

  1. nextcloud和onlyoffice一键简单无脑部署
  2. 花了近70美元入手的学生版MATLAB体验到底如何?
  3. 感觉用路由器上网变慢怎么办
  4. 读书百客:《圆圆曲》鉴赏
  5. 树莓派shell调节树莓派3的CPU电源模式
  6. Ubuntu LinuxMint安装微信QQ阿里旺旺
  7. 太突然!多所百年高校永久关闭!这个行业将损失超1700亿元...
  8. PON无源光网络的接入技术-EPON和GPON特点
  9. 阿姆斯特朗配货站欺诈邮政赔1亿美元
  10. CentOS7设置开机启动网络