Android通过Service实现简单的音乐播放

android音乐播放效果,简单的服务开启。

这里将用到android的四大组件之一:Service

注意:Service是自大组件之一,需要注册。

什么是服务?

1:“Service” 意思即“服务”的意思, 像 Windows 上面的服务一样,服务是在后台上运行,承担着静悄悄的不为人所注意的工作。

2:Service运行在后台,它是不可见的、无界面的程序。

3:Service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity,这个时候程序要在后台继续播放;比如检测SD卡上文件的变化;再或者在后台记录用户的地理信息位置的改变;或者启动一个服务来运行并一直监听某种动作等等。

下面是源码:

MainActivity

/**
 * 这是一个Service生命周期及开启服务的小例子
 * 实现播放音乐功能
 */
public class MainActivity extends AppCompatActivity {
 /**
  * 规定开始音乐、暂停音乐、结束音乐的标志
  */
 public static final int PLAT_MUSIC=1;
 public static final int PAUSE_MUSIC=2;
 public static final int STOP_MUSIC=3;
 private MyBroadCastReceiver receiver;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  receiver=new MyBroadCastReceiver();
  IntentFilter filter=new IntentFilter();
  filter.addAction("com.complete");
  registerReceiver(receiver,filter);
 }
 public void onClick(View view){
  switch (view.getId()){
   //开始音乐
   case R.id.btn_startmusic:
    playingmusic(PLAT_MUSIC);
    break;
   //暂停
   case R.id.btn_pausemusic:
    playingmusic(PAUSE_MUSIC);
    break;
   //停止
   case R.id.btn_stopmusic:
    playingmusic(STOP_MUSIC);
    break;
  }
 }
 private void playingmusic(int type) {
  //启动服务,播放音乐
  Intent intent=new Intent(this,PlayingMusicServices.class);
  intent.putExtra("type",type);
  startService(intent);
 }
 @Override
 protected void onDestroy() {
  super.onDestroy();
  unregisterReceiver(receiver);
 }
}

MyBroadCastReceiver类(广播接收者):

/**
 * 这是一个Service生命周期及开启服务的小例子
 * 实现播放音乐功能
 */
public class MainActivity extends AppCompatActivity {
 /**
  * 规定开始音乐、暂停音乐、结束音乐的标志
  */
 public static final int PLAT_MUSIC=1;
 public static final int PAUSE_MUSIC=2;
 public static final int STOP_MUSIC=3;
 private MyBroadCastReceiver receiver;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  receiver=new MyBroadCastReceiver();
  IntentFilter filter=new IntentFilter();
  filter.addAction("com.complete");
  registerReceiver(receiver,filter);
 }
 public void onClick(View view){
  switch (view.getId()){
   //开始音乐
   case R.id.btn_startmusic:
    playingmusic(PLAT_MUSIC);
    break;
   //暂停
   case R.id.btn_pausemusic:
    playingmusic(PAUSE_MUSIC);
    break;
   //停止
   case R.id.btn_stopmusic:
    playingmusic(STOP_MUSIC);
    break;
  }
 }
 private void playingmusic(int type) {
  //启动服务,播放音乐
  Intent intent=new Intent(this,PlayingMusicServices.class);
  intent.putExtra("type",type);
  startService(intent);
 }
 @Override
 protected void onDestroy() {
  super.onDestroy();
  unregisterReceiver(receiver);
 }
}

PlayingMusicServices类:

/**
 * 这是一个Start Service
 */
public class PlayingMusicServices extends Service {
 //用于播放音乐等媒体资源
 private MediaPlayer mediaPlayer;
 //标志判断播放歌曲是否是停止之后重新播放,还是继续播放
 private boolean isStop=true;
 /**
  * onBind,返回一个IBinder,可以与Activity交互
  * 这是Bind Service的生命周期方法
  * @param intent
  * @return
  */
 @Nullable
 @Override
 public IBinder onBind(Intent intent) {
  return null;
 }
 //在此方法中服务被创建
 @Override
 public void onCreate() {
  super.onCreate();
  if (mediaPlayer==null){
   mediaPlayer=new MediaPlayer();

   //为播放器添加播放完成时的监听器
   mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp) {
     //发送广播到MainActivity
     Intent intent=new Intent();
     intent.setAction("com.complete");
     sendBroadcast(intent);
    }
   });
  }
 }

/**
  * 在此方法中,可以执行相关逻辑,如耗时操作
  * @param intent :由Activity传递给service的信息,存在intent中
  * @param flags :规定的额外信息
  * @param startId :开启服务时,如果有规定id,则传入startid
  * @return 返回值规定此startservice是哪种类型,粘性的还是非粘性的
  *   START_STICKY:粘性的,遇到异常停止后重新启动,并且intent=null
  *   START_NOT_STICKY:非粘性,遇到异常停止不会重启
  *   START_REDELIVER_INTENT:粘性的,重新启动,并且将Context传递的信息intent传递
  * 此方法是唯一的可以执行很多次的方法
  */
 @Override
 public int onStartCommand(Intent intent, int flags, int startId) {
  switch (intent.getIntExtra("type",-1)){
   case MainActivity.PLAT_MUSIC:
    if (isStop){
     //重置mediaplayer
     mediaPlayer.reset();
     //将需要播放的资源与之绑定
     mediaPlayer=MediaPlayer.create(this,R.raw.birds);
     //开始播放
     mediaPlayer.start();
     //是否循环播放
     mediaPlayer.setLooping(false);
     isStop=false;
    }else if (!isStop&&mediaPlayer.isPlaying()&&mediaPlayer!=null){
     mediaPlayer.start();
    }
    break;
   case MainActivity.PAUSE_MUSIC:
    //播放器不为空,并且正在播放
    if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
     mediaPlayer.pause();
    }
    break;
   case MainActivity.STOP_MUSIC:
    if (mediaPlayer!=null){
     //停止之后要开始播放音乐
     mediaPlayer.stop();
     isStop=true;
    }
    break;
  }
  return START_NOT_STICKY;
 }

 @Override
 public void onDestroy() {
  super.onDestroy();
 }
}

最后不要忘记在清单配置文件中注册服务:

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

在res下新建一个raw的文件夹,将事先下载好的MP3文件放入中,这里的歌曲是我自己下载的是birds.mp3 。

Android Studio下运行无错。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

您可能感兴趣的文章:

  • Android使用Service实现简单音乐播放实例
  • Angular2 Service实现简单音乐播放器服务
  • Android基于Service的音乐播放器
  • 教你轻松制作Android音乐播放器
  • android暂停或停止其他音乐播放器的播放实现代码
  • Android编程开发音乐播放器实例
  • Android简易音乐播放器实现代码
(0)

相关推荐

  • Android基于Service的音乐播放器

    本文开发一个基于Service的音乐播放器,音乐由后台运行的Service负责播放,当后台的播放状态发生变化时,程序将会通过发送广播通知前台Activity更新界面:当点击Activity的界面按钮时,系统将通过发送广播通知后台Service来改变播放状态. 前台Activity界面有两个按钮,分别用于控制播放/暂停.停止,另外还有两个文本框,用于显示正在播放的歌曲名.歌手名.前台Activity的代码如下: public class MainActivity extends AppCompat

  • Android使用Service实现简单音乐播放实例

    Service翻译成中文是服务,熟悉Windows 系统的同学一定很熟悉了.Android里的Service跟Windows里的Service功能差不多,就是一个不可见的进程在后台执行. Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,例如我们打开一个音乐播放器来听音乐,在听音乐的同时也想做下其它的事情,比如上网聊Q.或者上网浏览新闻之类的事情.这样的话,我们就需要用到S

  • Angular2 Service实现简单音乐播放器服务

    引言 如果说组件系统(Component)是ng2应用的躯体,那把服务(Service)认为是流通于组件之间并为其带来生机的血液再合适不过了.组件间通信的其中一种优等选择就是使用服务,在ng1里就有了广泛使用,而ng2保持了服务的全部特性,包括其全局单例与依赖注入.今天就来实践一下ng2的服务(Service)这一利器,来实现一个简单的音乐播放器,重点在于使用服务来进行音频的播放控制与全局范围的调用. 一.基本项目准备: 考虑到音频播放是个比较通用的服务,决定将其创建为一个单独的模块AudioM

  • Android编程开发音乐播放器实例

    本文实例讲述了Android编程开发音乐播放器,分享给大家供大家参考,具体如下: 音乐播放器中综合了以下内容: SeekBar.ListView.广播接收者(以代码的形式注册Receiver).系统服务.MediaPlayer 实现的功能: 1.暂停/播放.下一首/上一首,点击某一首时播放 2.支持拖动进度条快进 3.列表排序 4.来电话时,停止播放,挂断后继续播放 5.可在后台播放 效果图: 界面: main.xml: <?xml version="1.0" encoding=

  • 教你轻松制作Android音乐播放器

    欣赏一下我们清爽的界面吧~ 如果是只用activity来制作这样的东西简直是太小儿科了,此处我们当然用的是service 首先我们先上service的代码: 1.如果我们要访问service的属性和方法,那么在activity肯定是以bindservice的方法实现的,而在service中的onbind方法也是必须要实现的,onbind返回的Ibinder对象在activity的serviceconnection中得到使用. 2.activity获取到Ibinder对象,可以进一步获取服务对象和

  • Android简易音乐播放器实现代码

    本文实例为大家分享了Android音乐播放器的具体代码,供大家参考,具体内容如下 1.播放项目内的音乐 package com.thm.g150820_android26_playmusic; import Android.media.MediaPlayer; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.wid

  • android暂停或停止其他音乐播放器的播放实现代码

    代码如下: 复制代码 代码如下: public static final String PLAYSTATE_CHANGED = "com.android.music.playstatechanged";    public static final String META_CHANGED = "com.android.music.metachanged";    public static final String QUEUE_CHANGED = "com

  • Android通过Service实现简单的音乐播放

    android音乐播放效果,简单的服务开启. 这里将用到android的四大组件之一:Service 注意:Service是自大组件之一,需要注册. 什么是服务? 1:"Service" 意思即"服务"的意思, 像 Windows 上面的服务一样,服务是在后台上运行,承担着静悄悄的不为人所注意的工作. 2:Service运行在后台,它是不可见的.无界面的程序. 3:Service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity,这个时候

  • 使用HTML5+Boostrap打造简单的音乐播放器

    前言:这个是综合一下我最近在学的东西做的小Demo,到实际使用还有距离,但是用来练手巩固知识点还是不错的,最近在二刷JS书和Boostrap.css的源码,做完这个Demo也算是暂告一段落,接下来是jQuery的源码和Boostrap.js的源码,任务很艰巨呢,加油~在此就不整篇的贴代码了,如果感兴趣的小伙伴可以发消息给我,可以把代码传给你们~ 正文: 先上效果图 1.布局:Boostrap里的响应式和自适应布局是自然跑不掉的,container中嵌套row再分别嵌套aside和main(H5新

  • python 制作简单的音乐播放器

    如你所见,功能很简单.只有基本的播放,停止,甚至只针对一首歌曲,仅供初学者参考学习用. 代码 from tkinter import * from tkinter import filedialog from pygame import mixer class MusicPlayer: def __init__(self, window ): window.geometry('320x100'); window.title('Iris Player'); window.resizable(0,0

  • Android实现简单的音乐播放器

    本文实例为大家分享了Android实现简单音乐播放器的具体代码,供大家参考,具体内容如下 1.制作一个简易的音乐播放器 使用软件:Android studio + jdk1.8 + Gradle6.5(其他版本也可以) 2.activity_main.xml文件(主页面的编写) 先看一下示意图再来排版(音乐板块的模型看的是某云) 分3个部分来看,第一个是音乐的标题,就是Sky_High.No Copyright Sounds和那个圆形的可以转动的图标. <ImageView     androi

  • 利用java制作简单的音乐播放器

    本文主要是用到java中的swing技术,以及JMFjar中的API,为大家分享了java音乐播放器的具体实现代码,供大家参考,具体内容如下 备注:需要用JDK1.8才能播放音乐MP3 package baidu; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*; import javax.media.bean.playerbean.*;

  • JavaScript实现简单的音乐播放器

    本文实例为大家分享了JavaScript实现简单音乐播放器的具体代码,供大家参考,具体内容如下 主要功能:快进.快退.暂停.上下一首.禁音.鼠标控制音量.自动下一首.显示歌名 <html> <head>     @*不提供音频*@     <meta name="viewport" content="width=device-width" />     <title>ceshi14</title> <

  • js制作简单的音乐播放器的示例代码

    一.设计目的: 1.随着现在人民生活质量的提高同样伴随着生活压力的增大,越来越多的人追求越来越多的娱乐,其中一种娱乐方式就是音乐,于是突发奇想,制作一个音乐播放器. 2.主要功能: 1 支持循环自动播放 2 支持图片的旋转 3 支持调整播放的位置,以及调整声音的大小 4 歌词滚动效果 5 每秒显示音乐的播放时间 二 .设计思路: 1.向浏览器中添加背景音乐: 首先应该向网页中添加几首好听的背景音乐.添加音乐有,两种方式可以用一个audo标签,这样应该把音乐的地址存放到一个数组中,第二种方式是,有

  • Android简单音乐播放实例

    Service翻译成中文是服务,熟悉Windows 系统的同学一定很熟悉了.Android里的Service跟Windows里的Service功能差不多,就是一个不可见的进程在后台执行. Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,例如我们打开一个音乐播放器来听音乐,在听音乐的同时也想做下其它的事情,比如上网聊Q.或者上网浏览新闻之类的事情.这样的话,我们就需要用到S

  • Android实现简单音乐播放器(MediaPlayer)

    Android实现简单音乐播放器(MediaPlayer),供大家参考,具体内容如下 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有: 播放.暂停功能: 进度条显示播放进度功能 拖动进度条改变进度功能: 后台播放功能: 停止功能: 退出功能: 代码实现 导入歌曲到手机SD卡的Music目录中,这里我导入了4首歌曲:仙剑六里面的<誓言成晖>.<剑客不能说>.<镜中人>和<

随机推荐