首先在res里建立raw文件用来存放音频文件 这里注意如果写代码过程中发现raw文件引用不到 就build-clear project 一下

编写main-xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_main_play"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="播放" /><Buttonandroid:id="@+id/btn_main_pause"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="暂停" /><Buttonandroid:id="@+id/btn_main_stop"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="停止" /><Buttonandroid:id="@+id/btn_main_exit"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="退出" />
</LinearLayout>

main-activity 代码

import android.content.Intent;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity implements View.OnClickListener {Button btn_main_play;Button btn_main_pause;Button btn_main_stop;Button btn_main_exit;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_main_play = findViewById(R.id.btn_main_play);btn_main_pause = findViewById(R.id.btn_main_pause);btn_main_stop = findViewById(R.id.btn_main_stop);btn_main_exit = findViewById(R.id.btn_main_exit);btn_main_play.setOnClickListener(this);btn_main_pause.setOnClickListener(this);btn_main_stop.setOnClickListener(this);btn_main_exit.setOnClickListener(this);}@Overridepublic void onClick(View view) {Intent intent = new Intent(this, MusicService.class);switch (view.getId()) {case R.id.btn_main_play:intent.putExtra("action", "play");startService(intent);break;case R.id.btn_main_pause:intent.putExtra("action", "pause");startService(intent);break;case R.id.btn_main_stop:intent.putExtra("action", "stop");startService(intent);break;case R.id.btn_main_exit://关闭服务 结束activitystopService(intent);finish();break;}}
}

新建MusicService 继承Service

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;public class MusicService extends Service {@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {String action = intent.getStringExtra("action");switch (action) {case "play":play();break;case "pause":pause();break;case "stop":stop();break;}return super.onStartCommand(intent, flags, startId);}private MediaPlayer mp;private void exit() {stop();}private void stop() {if (mp != null) {mp.stop();//停止mp.reset();//重置mp.release();//释放资源mp = null;}}private void pause() {if (mp != null && mp.isPlaying()) {mp.pause();}}private void play() {if (mp == null) {mp = MediaPlayer.create(this, R.raw.godv);}mp.start();}@Overridepublic void onDestroy() {super.onDestroy();stop();}
}

注册服务AndroidManifest.xml

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

最终能实现后台播放

抖音短视频系统开发Service后台播放音乐实例相关推荐

  1. shell date 日期格式化_抖音短视频系统开发,日期加减

    let dateTime=new Date(); this.dateFomat是对日期格式化为 yyyy - mm - dd的格式 // 减一天 dateTime = dateTime.setDate ...

  2. 抖音短视频系统开发图片局部放大镜,可在大图上下左右移动并放大对应的区域

    如何实现放大镜的原理呢?一种方式我们可以采用将原图中的局部区域提取裁剪,然后在图片顶层的自定义控件上放大对应的倍数展示即可:另外一个种方式是将整图都放大相应的倍数,然后截取需要显示的区域,间接实现放大 ...

  3. 抖音短视频系统开发自定义弹框

    我们如果想要实现这样的自定义弹框,需要怎么做呢,接下来就是教程 首先,我们需要创建一个类继承Dialog 下面就是代码 import android.annotation.SuppressLint; ...

  4. 抖音短视频系统开发小程序 上传图片带预览带删除功能

    <view class="container"><view class="title">用户反馈</view><for ...

  5. 仿抖音短视频系统源码,android 时间戳转换

    仿抖音短视频系统源码,android 时间戳转换相关的代码 package util;import java.text.SimpleDateFormat; import java.util.Calen ...

  6. 仿抖音短视频系统源码,获取系统图片

    仿抖音短视频系统源码,实现获取系统图片的相关代码如下: 首先开权限 <uses-permission android:name="android.permission.WRITE_EX ...

  7. IOS抖音短视频APP开发关于扫描二维码,并根据文本生成二维码

    IOS抖音短视频APP开发关于扫描二维码,(根据光线强弱显示隐藏闪光灯)并根据文本生成二维码. WeakSelf; //IOS抖音短视频APP开发构建扫描样式视图 _scanView = [[WSLS ...

  8. 抖音短视频APP开发如何生成二维码?

    授权转载自云豹网络科技的CSDN博客 原文链接:https://blog.csdn.net/yb1314111/article/details/101283985 IOS抖音短视频APP开发关于扫描二 ...

  9. 仿抖音短视频系统源码,给控件添加阴影效果

    仿抖音短视频系统源码中,实现给控件添加阴影效果的相关代码 1.使用elevation和translationZ实现阴影效果 这种方式需要在API 21才可以使用,具体代码实现片段如下: <Tex ...

  10. 抖音短视频APP开发通过三种方式绘制图片

    (一)ImageView绘制图片 (1)将图片分别放入mipmap-hdpi.assets (2)布局文件: <?xml version="1.0" encoding=&qu ...

最新文章

  1. linux 技巧:使用 screen 管理你的远程会话
  2. Java对象的内存模型
  3. 怎么把代码放图片里面进行注入_【5025Bridge V1.0】(三)连接、选座、准备的代码搭建...
  4. Android之加载外部dex
  5. Life Cycle Stages of ASP.NET Web Page.
  6. 中国35位“大国工匠”榜单出炉!西工大、西电合计占半壁江山!清华仅1人!...
  7. python模拟点击网页按钮_网页自动化开发(第一章)
  8. PHP-cli 日志彩色玩法 echo \033[1;33m Hello World. \033[0m \n;
  9. 你知道面试官是如何刷人的吗
  10. [资源分享] 推荐两本电子书
  11. Android 色彩设计理念
  12. jQuery设置文本框回车事件
  13. 最长上升子序列(LIS)题目合集
  14. 搞数仓也得懂几个常用机器学习算法
  15. Android 使用Alarm机制创建长时间在后台运行的定时任务
  16. 计算机辅助电路小结,电子电路计算机辅助设计实训报告.doc
  17. wxPython 4.2.0 发布
  18. oracle em错误,em使用错误,求建议
  19. matplotlib可视化番外篇bar()--带误差棒的柱状图
  20. java虚拟机有哪几部分组成,Java虚拟机基本结构

热门文章

  1. c语言逻辑运算符用法大全,【学习笔记】【C语言】逻辑运算符
  2. P3174 [HAOI2009] 毛毛虫(树形DP)
  3. 三进制计算机在线计算,计算器在线
  4. “应版权方要求,文件无法下载”的解决方案
  5. python sorted排序原理_python的sorted排序详解
  6. 高尔顿钉板仿真模拟 MATLAB
  7. WPS Excel将多个Excel文件合并到一个Excel文件中(sheet)
  8. 矢量网络分析仪测量总结
  9. 11开根号不用计算机,数学开根号有什么方法?不用计算器
  10. 使用百词斩如何减少复习量