1.首先,创建一个项目,名为Mp3Test,创建完之后打开res目录下的layout下的activity_main.xml文件,打开src下的MainActivity.java文件,首先,先把布局文件写好,布局文件activity_main.xml文件下有个TextView控件和4个Button控件,我还在drawable-hdpi文件夹下放置了background.png背景图片,接下来附上布局文件代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="@drawable/background" ><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:padding="10dp"android:text="播放一首简单的音乐"android:textSize="20sp"android:gravity="center_horizontal|center_vertical"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:id="@+id/play"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="播放"android:onClick="click" android:padding="20dp"/><Buttonandroid:id="@+id/pause"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="暂停" android:onClick="click"android:padding="20dp" /><Buttonandroid:id="@+id/stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="停止"android:onClick="click"android:padding="20dp"  /><Buttonandroid:id="@+id/exit"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="click"android:padding="20dp"android:text="退出" /></LinearLayout></LinearLayout>

2.接下来要创建多一个类,继承于Service类,那个类我创建时取为ServiceTest类,下面先附上MainActivity.java文件的代码,这里用来显示界面和用Intent对象作为桥梁,把播放,暂停,停止音乐播放放在后台来进行,ServiceTest.java文件用来后台服务:

MainActivity.java文件:

package com.example.mp3test;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void click(View v){Intent intent=new Intent(MainActivity.this, ServiceTest.class);int op=-1;//一个中间变量//获得各自的按钮控件switch (v.getId()) {case R.id.play://播放按钮op=1;break;case R.id.pause://暂停按钮op=2;break;case R.id.stop://停止按钮op=3;break;case R.id.exit://退出按钮stopService(intent);//停止服务finish();//退出本界面break;default:break;}Bundle bundle=new Bundle();bundle.putInt("msg", op);intent.putExtras(bundle);startService(intent);//开始服务}
}

接下里附上ServiceTest.java文件,用来处理后台服务的事情,在这里我们把我们所需要的资源放进去,在res目录下创建一个新的文件夹raw,把一个音乐文件复制进去,注意音乐文件命名要合法,不能有中文,还必须全部小写,我们就把jasmine.mp3复制进去:

ServiceTest.java:

package com.example.mp3test;import java.io.IOException;import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.IBinder;public class ServiceTest extends Service {private MediaPlayer player;// 创建player对象@Overridepublic IBinder onBind(Intent arg0) {// TODO Auto-generated method stubreturn null;}//服务创建@Overridepublic void onCreate() {if(player==null){player=player.create(ServiceTest.this, R.raw.jasmine);//设置音乐资源并实例化playerplayer.setLooping(false);//音乐不能循环super.onCreate();}}//服务销毁@Overridepublic void onDestroy() {// TODO Auto-generated method stubplayer.release();//释放资源super.onDestroy();}//服务开始@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {// TODO Auto-generated method stubBundle bundle=intent.getExtras();int op=bundle.getInt("msg");//获得从MainActivity.java里传递过来的opswitch (op) {case 1://当op为1,即点击了播放按钮play();//调用play()方法break;case 2://当op为2,即点击了暂停按钮pause();//调用pause()方法break;case 3://当op为3,即点击了停止按钮stop();//调用stop()方法break;default:break;}return super.onStartCommand(intent, flags, startId);}private void stop() {// TODO Auto-generated method stubif(player.isPlaying()){player.stop();//停止播放音乐try {player.prepare();} catch (IllegalStateException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}private void pause() {// TODO Auto-generated method stubif(player.isPlaying()&&player!=null){player.pause();//暂停播放音乐}}private void play() {// TODO Auto-generated method stubif(!player.isPlaying()){player.start();//开始播放音乐}}}

3.接下来别忘了一点,就是你写的那个继承于Service类的ServiceTest必须在AndroidManifest.xml文件里声明一个service,即加上这条代码:

  <service android:name=".ServiceTest"></service>

AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.mp3test"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="19" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.example.mp3test.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><service android:name=".ServiceTest"></service></application></manifest>

4.代码已经完成,接下来开始运行这个安卓项目,运行效果如下图所示:

点击播放按钮,开始播放那首我放入的mp3音乐,点击暂停按钮正在播放的音乐被停止了,点击播放音乐又继续播放,点击停止按钮,将停止音乐的播放,释放音乐资源,点击播放又将开始从头播放,如果你点击虚拟机的那个返回虚拟键盘键,音乐还是在后台播放,点击退出按钮,后台音乐停止播放,退出本界面。

5.以上的内容,是我学习积累所得,如有雷同,纯属巧合,仅供大家学习参考,写得不好,请见谅,如有什么错误请指出,谢谢!



Android之播放一首简单的音乐相关推荐

  1. java学习之路之播放一首简单的音乐

    1.首先,要去网上下载个JMF工具,这个工具可以播放通常情况下的Mp3音乐文件和视频,也叫做Java媒体框架,可以去官网下载JMF官网下载,下载完之后,有个jmf的exe安装文件,双击打开进行安装,安 ...

  2. android+仿ios+音乐播放器,iOS简单的音乐播放器(仿QQ音乐)

    AVPlayer实现基本的播放,暂停,上一首,下一首,调节音量,调节进度等,正在学习的新人可以看下,有什么不足可以互相学习,谢谢支持 qq音乐.gif 这个是我写的一个简单的低仿QQ音乐, 如果你也喜 ...

  3. android 铃声播放器,Muziko - 想截取音乐片段当铃声?这款漂亮的播放器能帮你 - Android 应用 - 【最美应用】...

    清爽航海蓝,多种个性化选择,漂亮的不像实力派 Muziko 清爽漂亮的航海蓝(颜色名称是小美翻译的)让小美在打开音乐播放器时都有一种舒服的感觉.小美真的很喜欢这种颜色的清新舒爽的感觉!Muziko在界 ...

  4. Android开发做一个简单的音乐播放器

    Android开发如何做一个简单的音乐播放器,首先我们先要知道用到的知识点有哪些. 1.MediaPlayer:可以播放本地资源.sd卡内存资源以及网络uri资源,在这里我们播放sd卡上的音乐资源. ...

  5. Android Studio实现简单的音乐播放(播放、暂停、停止、上一首、下一首)

    Android Studio实现简单的音乐播放(播放.暂停.停止.上一首.下一首) 简要介绍 采用Service组件实现后台播放,BroadcastReceiver实现消息传递.BroadcastRe ...

  6. android 简单的音乐播放器实现播放模式的切换

    以前写过一篇简单的音乐播放器,但是这个播放器没有实现播放模式的切换,在项目中要实现两个播放模式,循环播放和随机播放,经过这两天的努力搞定了,界面比较粗糙.可以先看一下前面的简单音乐播放器,详细的就不说 ...

  7. android 简单的音乐播放器

    在项目开发过程中需要一个简单的音频播放的功能,需求很简单,只需要能够播放一个指定文件夹的全部mp3和wav音频文件就可以,谷歌给我们提供了一套比较完整的API,使得我们可以很简单的写出一个简易的音乐播 ...

  8. Android之简单本地音乐播放器

    平台:Android studio APK:http://fir.im/apps/56ea5187e75e2d69af000042 本地的音乐播放器,主要功能就是可以播放音乐,能够读取本地的音乐,并显 ...

  9. 一个基于Android开发的简单的音乐播放器

    一个基于Android开发的简单的音乐播放器 记得当时老师让我们写因为播放器时,脑子一头雾水,网上杂七杂八的资料也很少有用,因此索性就自己写一篇,希望对有缘人有用. 因为有好多人问我要源码,所以附上g ...

最新文章

  1. 携程数据库高可用架构实践
  2. html新人入门代码,HTML入门(示例代码)
  3. Linux 下查看某一个程序所使用的内存方法介绍
  4. blob字段乱码怎么处理_下载的附件名总乱码?你该去读一下 RFC 文档了!
  5. 一文读懂「中台」的前世今生
  6. leetcode题解162-寻找峰值
  7. 什么叫做数字功放?它的电路原理是什么?
  8. Android的ListView长按监听器
  9. Java Date实现加一天,年月日类推往后+1,日期+1,月份+1,年份+1
  10. FREETEXT FREETEXTTABLE CONTAINS CONTAINSTABLE
  11. Golang研学:defer!如何掌握并用好(延迟执行)
  12. 三个数比大小c语言_C语言必学知识点【结构体】用法很多,坑也很多!
  13. android版 暴风影音,Android版暴风影音 掌上的3D影院
  14. 欠采样临界采样matlab,信号临界采样、过采样、欠采样实验报告
  15. 微信小程序开发工具格式化代码快捷键以及更改快捷键
  16. word自定义目录格式时设置的标题格式不生效
  17. c# 语音卡控制--语音卡实现电话录音
  18. python爬取拉勾网职位信息_Python爬虫-拉勾网职位爬取
  19. Java并发Future
  20. 写一个辨别素数的函数,在主函数输入一个整数,输出是否为素数信息。

热门文章

  1. SqlBulkCopy类进行大数据(一万条以上)插入测试
  2. 十二生肖swift1.2
  3. .NET中的异步编程(一)-为什么需要异步
  4. Vue -- 指令【学习笔记】(持续更新)
  5. [ES6] 细化ES6之 -- 迭代器与生成器
  6. [Node.js] 模块化 -- http服务器模块
  7. File was loaded in the wrong encoding: 'UTF-8'
  8. HTTP CORS(HTTP-同源策略)
  9. 2041. 干草堆(前缀和差分)
  10. 删除链表中绝对值相等的结点(C++)