源码:

package com.sunmi.audio;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {//声名变量private Button start=null;private Button pause=null;private Button stop=null;private TextView state=null;private MediaPlayer mp3;private Boolean flag=false; //设置标记,false表示正在播放@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//取得各按钮组件start=(Button) super.findViewById(R.id.start);pause=(Button) super.findViewById(R.id.pause);stop=(Button) super.findViewById(R.id.stop);state=(TextView)super.findViewById(R.id.state);//为每个按钮设置单击事件start.setOnClickListener(new OnClickListenerStart());pause.setOnClickListener(new OnClickListenerPause());stop.setOnClickListener(new OnClickListenerStop());mp3= new MediaPlayer();    //创建一个MediaPlayer对象//在res下新建一个raw文件夹把一首歌放到此文件夹中并用英文命名mp3 = MediaPlayer.create(MainActivity.this,R.raw.gem);}//各按钮单击事件的实现如下//开始播放private class OnClickListenerStart implements OnClickListener{//implementsOnClickListener为实现OnClickListener接口@Override//重写onClic事件public void onClick(View v){//执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容try{if (mp3!=null){mp3.stop();}mp3.prepare();         //进入到准备状态mp3.start();          //开始播放state.setText("Playing");  //改变输出信息为“Playing”,下同} catch (Exception e){state.setText(e.toString());//以字符串的形式输出异常e.printStackTrace();  //在控制台(control)上打印出异常}}}//暂停播放private class OnClickListenerPause implements OnClickListener{@Overridepublic void onClick(View v){try{if (flag==false) //若flag为false,则表示此时播放器的状态为正在播放{mp3.pause();flag=true;state.setText("pause");}else if(flag==true){mp3.start();    //开始播放flag=false;     //重新设置flag为falsestate.setText("Playing");}} catch (Exception e){state.setText(e.toString());e.printStackTrace();}}}//停止播放private class OnClickListenerStop implements OnClickListener{@Overridepublic void onClick(View v){try{if (mp3!=null){mp3.stop();state.setText("stop");}} catch (Exception e){state.setText(e.toString());e.printStackTrace();}}}//重写暂停状态事件protected void onPause(){try{mp3.release();   //释放音乐资源} catch (Exception e){state.setText(e.toString());e.printStackTrace();}super.onPause();}
}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:orientation="horizontal"tools:context="com.sunmi.audio.MainActivity"><Buttonandroid:text="start"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/start"android:layout_marginStart="118dp"android:layout_marginTop="58dp"android:layout_alignParentTop="true"android:layout_alignParentStart="true" /><TextViewandroid:text="state"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/stop"android:layout_alignStart="@+id/start"android:layout_marginTop="69dp"android:id="@+id/state"android:layout_alignEnd="@+id/stop" /><Buttonandroid:text="pause"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="44dp"android:id="@+id/pause"android:layout_below="@+id/start"android:layout_alignStart="@+id/start" /><Buttonandroid:text="stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="49dp"android:id="@+id/stop"android:layout_below="@+id/pause"android:layout_alignStart="@+id/pause" /></RelativeLayout>

Android下最简单的Audio Player相关推荐

  1. sony 播放器 android,Hi-Res Audio Player

    什么是Hi-Res Audio Player Hi-Res Audio Player是一款音乐播放软件,能够通过简单的操作播放高质量音频文件. 通过简单的操作播放高解析度音源 将设备与您的电脑连接,只 ...

  2. [Android] Android MVP 架构下 最简单的 代码实现

    Android  MVP 架构下  最简单的 代码实现 首先看图: 上图是MVP,下图是MVC MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互.而 ...

  3. Android下的弹幕的简单实现

    Android下的弹幕的简单实现 简介 今天给大家带来一个前几天在做工程的时候写的一个有意思的Android弹幕实现,可以用来吐槽,介绍APP之类的~非常简单~几行代码~哈哈~下面是下载地址~ 下载地 ...

  4. Android 下简单的 MP3 播放(代码分析)

    本代码为教学材料,仅作学习使用,分析在注释里. 采用读取 SD 或者其他路径下的方式播放音乐文件. AndoirdManifest.xml 配置文件 <?xml version="1. ...

  5. 一个Android下ping的简单工具类

    这是一个自己写的Android下的ping的简单工具类,主要是通过ping获取到返回字符串之后截取信息得到自己想要的数据.不多说,上源码 import java.io.BufferedReader; ...

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

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

  7. android下拉刷新和上拉加载的一个简单库

    介绍一个android下拉刷新.上拉加载的库: https://github.com/chrisbanes/Android-PullToRefresh 使用方式,创建好一个Android项目,导入li ...

  8. android模拟打印机服务,Android下的POS打印机调用的简单实现

    本文基于GP58系列,它可以兼容ESC/POS指令集,对EPSON的打印机通用. Android下的设备调试,如果设备提供了驱动,按照厂家的驱动调试即可:设备未提供驱动,只能按照通用的方法进行调试.这 ...

  9. Android TTS实现简单阅读器

    本文原创版权归 51CTO winorlose2000 所有,转载请按如下方式于文章显示位置详细标明原创作者及出处,以示尊重!! 作者:winorlose2000 原文:http://vaero.bl ...

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

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

最新文章

  1. 安装xml2js出现npm ERR! code E404 npm ERR! 404 Not Found: event-stream@3.3.6
  2. 服务器无法通过系统非页面共享区来进行分配,因为共享区当前是空的解决办法.供参考....
  3. epoll与fork
  4. HDOJ2072解题报告【字典树】
  5. 浅谈高并发系统性能调优
  6. idea mysql 逆向生成,IDEA mybatis-generator逆向工程生成代码
  7. 使用pagehelper踩的坑PageHelper cannot be cast
  8. Java面向对象之抽象方法抽象类、接口的使用
  9. java的多线程学习,第四记
  10. 从AI打王者荣耀到自动驾驶,高通一口气公布了5G+AI未来的无数种可能
  11. 台式计算机有线无线网卡设置,笔记本/台式电脑有线网络转无线wifi教程
  12. 高数_第1章空间解析几何与向量代数__求旋转曲面方程
  13. R语言详解参数检验和非参数检验——样本T检验、方差分析、pearson相关性检验、单样本wilcoxon检验、Mann-Whitney检验、配对样本wilcoxon检验、列联表检验、卡方检验
  14. 高低频磨皮(商业磨皮一种)
  15. Mybatis查询oracle之clob类型
  16. javaScript笔记宝典
  17. 群晖网络不通_尝试解决:群晖使用Zerotier内网穿透出现错误
  18. 【Python机器学习及实践】进阶篇:模型实用技巧(特征提升)
  19. 一款非常好用的网站访问日志分析工具,360星图
  20. 替代A100,英伟达向中国市场推出性能阉割版A800 GPU芯片

热门文章

  1. Enumerator yielder.yield 与 Proc.yield 区别
  2. FlashDevelop4 快捷键
  3. 【FPGA-F3】阿里云FAAS平台,极大简化FPGA开发部署流程 1
  4. 【Java并发编程学习】3、线程挂起、恢复和终止
  5. 每天学点Python Cookbook(三)
  6. 原生JS实现图片懒加载之一:Element.getBoundingClientRect()
  7. Spring MVC 常用注解
  8. javascript--返回顶部效果
  9. Oracle约束的使用
  10. 软考网络工程师--数据通信基础