iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android简单音乐播放实例
  • 716
分享到

Android简单音乐播放实例

音乐Android 2022-06-06 09:06:52 716人浏览 八月长安
摘要

Service翻译成中文是服务,熟悉windows 系统的同学一定很熟悉了。Android里的Service跟Windows里的Service功能差不多,就是一个不可见的进程在

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

Android Service的生命周期:

Android中Service的生命周期并不是很复杂,只是继承了onCreate(), onStart(), onDestory()三个方法。当我们第一次启动Service服务时,调用onCreate() --> onStart()两个方法,当停止Service服务时,调用onDestory()方法。如果Service已经启动了,第二次再启动同一个服务时,就只是调用 onStart() 这个方法了。
Android Service 的使用:
1、参照上面的程序结构图,我们可以创建一个Android程序,在src目录下创建一个Activity,一个继承自Service类的服务类;同时在资源文件夹res目录下创建一个raw的文件夹存放音频文件,如把music.mp3音乐文件放在该目录下。该程序的主界面如下:

2、layout目录下的main.xml文件的源码


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android" 
  android:orientation="vertical" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  > 
  <TextView  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="Welcome to Andy's blog!" 
    android:textSize="16sp"/>   
  <TextView  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="音乐播放服务"/> 
  <Button 
    android:id="@+id/startMusic"  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="开启音乐播放服务"/> 
  <Button 
    android:id="@+id/stopMusic"  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="停止音乐播放服务"/> 
  <Button 
   android:id="@+id/bindMusic"  
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:text="绑定音乐播放服务"/> 
  <Button 
   android:id="@+id/unbindMusic"  
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:text="解除 ——绑定音乐播放服务"/> 
</LinearLayout> 

3、src目录下MusicService.java源码:


package com.andyidea.service; 
import android.app.Service; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.IBinder; 
import android.util.Log; 
import android.widget.Toast; 
public class MusicService extends Service { 
  //为日志工具设置标签 
  private static String TAG = "MusicService"; 
  //定义音乐播放器变量 
  private MediaPlayer mPlayer; 
  //该服务不存在需要被创建时被调用,不管startService()还是bindService()都会启动时调用该方法 
  @Override 
  public void onCreate() { 
    Toast.makeText(this, "MusicSevice onCreate()" 
        , Toast.LENGTH_SHORT).show(); 
    Log.e(TAG, "MusicSerice onCreate()"); 
    mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.music); 
    //设置可以重复播放 
    mPlayer.setLooping(true); 
    super.onCreate(); 
  } 
  @Override 
  public void onStart(Intent intent, int startId) { 
    Toast.makeText(this, "MusicSevice onStart()" 
        , Toast.LENGTH_SHORT).show(); 
    Log.e(TAG, "MusicSerice onStart()"); 
    mPlayer.start(); 
    super.onStart(intent, startId); 
  } 
  @Override 
  public void onDestroy() { 
    Toast.makeText(this, "MusicSevice onDestroy()" 
        , Toast.LENGTH_SHORT).show(); 
    Log.e(TAG, "MusicSerice onDestroy()"); 
    mPlayer.stop(); 
    super.onDestroy(); 
  } 
  //其他对象通过bindService 方法通知该Service时该方法被调用 
  @Override 
  public IBinder onBind(Intent intent) { 
    Toast.makeText(this, "MusicSevice onBind()" 
        , Toast.LENGTH_SHORT).show(); 
    Log.e(TAG, "MusicSerice onBind()"); 
    mPlayer.start(); 
    return null; 
  } 
  //其它对象通过unbindService方法通知该Service时该方法被调用 
  @Override 
  public boolean onUnbind(Intent intent) { 
    Toast.makeText(this, "MusicSevice onUnbind()" 
        , Toast.LENGTH_SHORT).show(); 
    Log.e(TAG, "MusicSerice onUnbind()"); 
    mPlayer.stop(); 
    return super.onUnbind(intent); 
  } 
} 

4、src目录下MusicServiceActivity源码:


package com.andyidea.service; 
import android.app.Activity; 
import android.content.ComponentName; 
import android.content.Context; 
import android.content.Intent; 
import android.content.ServiceConnection; 
import android.os.Bundle; 
import android.os.IBinder; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Toast; 
public class MusicServiceActivity extends Activity { 
  //为日志工具设置标签 
  private static String TAG = "MusicService"; 
   
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    //输出Toast消息和日志记录 
    Toast.makeText(this, "MusicServiceActivity", 
        Toast.LENGTH_SHORT).show(); 
    Log.e(TAG, "MusicServiceActivity"); 
    initlizeViews(); 
  } 
  private void initlizeViews(){ 
    Button btnStart = (Button)findViewById(R.id.startMusic); 
    Button btnStop = (Button)findViewById(R.id.stopMusic); 
    Button btnBind = (Button)findViewById(R.id.bindMusic); 
    Button btnUnbind = (Button)findViewById(R.id.unbindMusic); 
    //定义点击监听器 
    OnClickListener ocl = new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        //显示指定 intent所指的对象是个  service 
        Intent intent = new Intent(MusicServiceActivity.this,MusicService.class); 
        switch(v.getId()){ 
        case R.id.startMusic: 
          //开始服务 
          startService(intent); 
          break; 
        case R.id.stopMusic: 
          //停止服务 
          stopService(intent); 
          break; 
        case R.id.bindMusic: 
          //绑定服务 
          bindService(intent, conn, Context.BIND_AUTO_CREATE); 
          break; 
        case R.id.unbindMusic: 
          //解绑服务 
          unbindService(conn); 
          break; 
        } 
      } 
    }; 
     //绑定点击监听 
    btnStart.setOnClickListener(ocl); 
    btnStop.setOnClickListener(ocl); 
    btnBind.setOnClickListener(ocl); 
    btnUnbind.setOnClickListener(ocl); 
  } 
  //定义服务链接对象 
  final ServiceConnection conn = new ServiceConnection() { 
    @Override 
    public void onServiceDisconnected(ComponentName name) { 
      Toast.makeText(MusicServiceActivity.this, "MusicServiceActivity onSeviceDisconnected" 
          , Toast.LENGTH_SHORT).show(); 
      Log.e(TAG, "MusicServiceActivity onSeviceDisconnected"); 
    } 
    @Override 
    public void onServiceConnected(ComponentName name, IBinder service) { 
      Toast.makeText(MusicServiceActivity.this, "MusicServiceActivity onServiceConnected" 
          ,Toast.LENGTH_SHORT).show(); 
      Log.e(TAG, "MusicServiceActivity onServiceConnected"); 
    } 
  }; 
} 

5、最后,我们别忘了在AndroidManifest.xml配置文件中添加对Service的注册。即在application节点中添加<service android:name=".MusicService"/> 进行注册。
6、我们来看下程序运行后的Log.e中显示的Service生命周期

7、我们在Android终端设备中查看下刚才启动的音乐播放服务,看看我们退出程序后,是不是该程序的服务还在运行的呢?按如下步骤:Menu --> Settings --> Applications --> Running services 。在弹出的 Running services 中可以看到有哪些服务在运行。

这样我们就看到我们退出程序后,是由于该服务还在后台运行着,所以我们的音乐还可以继续播放着。就这样,我们就可以一边享受音乐,一边可以聊QQ,或者浏览新闻等等。

您可能感兴趣的文章:教你轻松制作Android音乐播放器android暂停或停止其他音乐播放器的播放实现代码Android编程开发音乐播放器实例Android简易音乐播放器实现代码Android中播放在线音乐代码android音乐播放器监听电话状态实现代码Android基于service实现音乐的后台播放功能示例Android MediaPlayer实现音乐播放器实例代码Android 使用mediaplayer播放res/raw文件夹中的音乐的实例Android仿网易云音乐播放界面


--结束END--

本文标题: Android简单音乐播放实例

本文链接: https://www.lsjlt.com/news/26086.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android音乐播放器简单实现案例
    目录音乐播放器开发SoundPool 播放多个音频video View播放视频控制摄像头摄像音乐播放器开发 MediaPlayer 是Android 控制音频和视频文件播放类 1.创...
    99+
    2022-12-16
    Android音乐播放器 Android音乐播放 Android播放器
  • android音乐播放简单实现的简单示例(MediaPlayer)
    利用MediaPlayer完成一个最简单的音乐播放。这个基本的控制掌握后,可直接利用为背景乐的控制。为了能够实现播放,在界面方面,我们需要三个控制按钮,分别是:Play(播放)、Pause(暂停)、Stop(停止)请看activity_ma...
    99+
    2023-05-30
    android 音乐 播放
  • Android实现简单的音乐播放器
    本文实例为大家分享了Android实现简单音乐播放器的具体代码,供大家参考,具体内容如下 1.制作一个简易的音乐播放器 使用软件:Android studio + jdk1.8 + ...
    99+
    2024-04-02
  • Android如何实现简单音乐播放器
    小编这次要给大家分享的是Android如何实现简单音乐播放器,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。开发工具:Andorid Studio 1.3运行环境:Android 4.4 KitKat工...
    99+
    2023-05-31
    android roi 如何实现
  • java 实现音乐播放器的简单实例
    java 实现音乐播放器的简单实例实现效果图:代码如下package cn.hncu.games;import java.applet.Applet;import java.applet.AudioClip;import java.awt....
    99+
    2023-05-31
    java 音乐 播放器
  • 简单实现java音乐播放器
    学习过java语言的你,或多或少,在某天突发奇想,想着用swing做一个音乐播放器。但是,发现很难找到,相关的java代码,或者你下载的代码有问题,或者你代码里面引入的类包找不到。为了解决自如此类的问题。在这儿,有如下的代码可以供大家参考。...
    99+
    2023-05-31
    java 播放器 ava
  • Android实现简易的音乐播放器
    本文实例为大家分享了Android实现简易的音乐播放器,供大家参考,具体内容如下 功能介绍 本次实验实现的是使用Andriod Studio开发一个简易的音乐播放器,所包含的功能有音...
    99+
    2024-04-02
  • Android 录音与播放功能的简单实例
     Android 录音与播放功能的简单实例最近在研究Android中一些常用的功能,像地图、拍照、录音和播放的实现等等,还有一些侧滑、动画等是如何实现的。今天就把录音和播放的实现分享一下,录音和播放比较简单,利用android内部...
    99+
    2023-05-31
    android 录音 播放
  • Android实现音乐视频播放
    本文实例为大家分享了Android实现音乐视频播放的具体代码,供大家参考,具体内容如下 步骤 1、新建一个安卓项目,再加一个assets包 2、在 assets中加入一段音频 3...
    99+
    2024-04-02
  • Android利用Service开发简单的音乐播放功能
    android音乐播放效果,简单的服务开启。 这里将用到android的四大组件之一:Service 注意:Service是自大组件之一,需要注册。 什么是服务? 1:“...
    99+
    2023-05-15
    Android Service音乐播放 Android实现音乐播放
  • 一个简单的Java音乐播放器
    本文实例为大家分享了Java音乐播放器展示的具体代码,供大家参考,具体内容如下package KKMusic; import java.applet.Applet; import java.applet.AudioClip; import ...
    99+
    2023-05-31
    java 播放器 ava
  • Android Studio 实现音乐播放器
    目录 一、引言 视频效果展示: 图片效果展示: .启动页效果 2.登录页效果 3.注册页效果 4.歌曲列表页效果 5.播放页效果  二、详细设计 1.登陆注册功能 2.音乐列表页面 2.音乐播放功能 一、引言         Andr...
    99+
    2023-09-29
    android studio android ide
  • Android怎么用Service开发简单的音乐播放功能
    这篇文章主要介绍“Android怎么用Service开发简单的音乐播放功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android怎么用Service开发简单的音乐播放功能”文章能帮助大家解决问...
    99+
    2023-07-06
  • Android Studio实现音乐播放器的全过程(简单易上手)
    目录前言一、项目概述1、需求分析2、设计分析3、资源文件分析二、开发环境三、准备工具四、详细设计1、搭建主界面布局2、创建服务类2.1、服务概述2.2、服务的创建2.3、服务的启动方...
    99+
    2024-04-02
  • Android音乐播放器如何实现
    这篇“Android音乐播放器如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android音乐播放器如何实现”文章吧...
    99+
    2023-07-04
  • Android中如何播放音乐
    这篇文章将为大家详细讲解有关Android中如何播放音乐,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体内容如下//媒体播放器private MediaPlayer p...
    99+
    2023-05-30
    android
  • Angular2 Service如何实现简单音乐播放器服务
    这篇文章给大家分享的是有关Angular2 Service如何实现简单音乐播放器服务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。引言如果说组件系统(Component)是ng2...
    99+
    2024-04-02
  • JS+html5如果制作简单音乐播放器
    这篇文章主要为大家展示了“JS+html5如果制作简单音乐播放器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS+html5如果制作简单音乐播放器”这篇文章吧...
    99+
    2024-04-02
  • Android怎么实现音乐视频播放
    这篇文章给大家分享的是有关Android怎么实现音乐视频播放的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。步骤新建一个安卓项目,再加一个assets包在 assets中加入一段音频在界面中加入音乐的“开始”按钮和...
    99+
    2023-06-15
  • Android Studio如何实现音乐播放器
    这篇文章主要介绍了Android Studio如何实现音乐播放器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、项目概述1、需求分析综合运用UI界面设计、数据存储...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作