本文实例讲述了Android编程实现播放音频的方法。分享给大家供大家参考,具体如下:

在 Android 中播放音频文件一般都是使用 MediaPlayer 类来实现的,它对多种格式的音 频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。下表列出了 MediaPlayer 类中一些较为常用的控制方法。

方法名

功能描述

setDataSource()

设置要播放的音频文件的位置。

prepare()

在开始播放之前调用这个方法完成准备工作。

start()

开始或继续播放音频。

pause()

暂停播放音频。

reset()

将 MediaPlayer 对象重置到刚刚创建的状态。

seekTo()

从指定的位置开始播放音频。

stop()

停止播放音频。调用这个方法后的 MediaPlayer 对象无法再播放音频。

release()

释放掉与 MediaPlayer 对象相关的资源。

isPlaying()

判断当前 MediaPlayer 是否正在播放音频。

getDuration()

获取载入的音频文件的时长。

简单了解了上述方法后,我们再来梳理一下 MediaPlayer 的工作流程。首先需要创建出一个 MediaPlayer 对象,然后调用 setDataSource()方法来设置音频文件的路径,再调用 prepare()方法使 MediaPlayer 进入到准备状态,接下来调用 start()方法就可以开始播放音频,调用 pause()方法就会暂停播放,调用 reset()方法就会停止播放。 下面就让我们通过一个具体的例子来学习一下吧,新建一个 PlayAudioTest 项目,然后修改 activity_main.xml 中的代码,如下所示:

布局文件中横向放置了三个按钮,分别用于对音频文件进行播放、暂停和停止操作。然 后修改 MainActivity 中的代码,如下所示:

public class MainActivity extends Activity implements OnClickListener {

private Button play;

private Button pause;

private Button stop;

private MediaPlayer mediaPlayer = new MediaPlayer();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

play = (Button) findViewById(R.id.play);

pause = (Button) findViewById(R.id.pause);

stop = (Button) findViewById(R.id.stop); play.setOnClickListener(this); pause.setOnClickListener(this); stop.setOnClickListener(this);

initMediaPlayer(); // 初始化MediaPlayer

}

private void initMediaPlayer() {

try {

File file = new File(Environment.getExternalStorageDirectory(), "music.mp3");

mediaPlayer.setDataSource(file.getPath()); // 指定音频文件的路径

mediaPlayer.prepare(); // 让MediaPlayer进入到准备状态

} catch (Exception e) {

e.printStackTrace();

}

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.play:

if (!mediaPlayer.isPlaying()) {

mediaPlayer.start(); // 开始播放

}

break;

case R.id.pause:

if (mediaPlayer.isPlaying()) {

mediaPlayer.pause(); // 暂停播放

}

break;

case R.id.stop:

if (mediaPlayer.isPlaying()) {

mediaPlayer.reset(); // 停止播放

initMediaPlayer();

}

break;

default:

break;

}

}

@Override

protected void onDestroy() {

super.onDestroy();

if (mediaPlayer != null) {

mediaPlayer.stop();

mediaPlayer.release();

}

}

}

可以看到,在类初始化的时候我们就创建了一个 MediaPlayer 的实例,然后在 onCreate() 方法中调用了 initMediaPlayer()方法为 MediaPlayer 对象进行初始化操作。在 initMediaPlayer() 方法中,首先是通过创建一个 File 对象来指定音频文件的路径,从这里可以看出,我们需要 事 先 在 SD 卡 的 根 目 录 下 放 置 一 个 名 为 music.mp3 的 音 频 文 件 。 后 面 依 次 调 用 了 setDataSource()方法和 prepare()方法为 MediaPlayer 做好了播放前的准备。

接下来我们看一下各个按钮的点击事件中的代码。当点击 Play 按钮时会进行判断,如 果当前 MediaPlayer 没有正在播放音频,则调用 start()方法开始播放。当点击 Pause 按钮时会 判断,如果当前 MediaPlayer 正在播放音频,则调用 pause()方法暂停播放。当点击 Stop 按钮 时会判断,如果当前 MediaPlayer 正在播放音频,则调用 reset()方法将 MediaPlayer 重置为刚 刚创建的状态,然后重新调用一遍 initMediaPlayer()方法。

最后在 onDestroy()方法中,我们还需要分别调用 stop()和 release()方法,将与 MediaPlayer相关的资源释放掉。 这样一个简易版的音乐播放器就完成了,现在将程序运行到手机上,界面如图所示:

点击一下 Play 按钮就可以听到优美的音乐了,然后点击 Pause 按钮声音会停住,再次点 击 Play 按钮会接着暂停之前的位置继续播放。这时如果点击一下 Stop 按钮声音也会停住, 但是再次点击 Play 按钮时,音乐就会重头开始播放了。

希望本文所述对大家Android程序设计有所帮助。

android编程播放音乐,Android编程实现播放音频的方法示例相关推荐

  1. 播放音乐的html语言,Html5音频和视频播放示例详解

    html5中的音频和视频 codebase="swflash.cab#version=6,0,10,0"> 您的浏览器不支持video! var video = docume ...

  2. android后台自播放音乐,Android实现后台播放音乐(Service方式)

    Android实现后台播放音乐(Service方式) 实现: 在res文件夹下添加raw文件夹,添加mp3/4格式的音乐文件 注意命名规则只能是a-z,0-9,和下划线_ 不能大写字母和- Andro ...

  3. android中服务播放音乐,android中用Service播放音乐

    一般的Android应用程序的音乐可以分为背景音乐和点击各种控件时的音效,前者一般为比较大的音乐文件,后者一般为比较小的音乐.在Android中一般用MediaPlayer类处理比较大的音频文件,用S ...

  4. android在线查询音乐,Android 数据抓取——在线音乐播放器的实现

    前言: 相信很多同学学习android都开做过播放器一类的小玩意吧,但是苦于没有服务器提供数据,因而只能做个本地播放器,今天,这篇文章就是通过数据抓取,实现没有服务器,依然可以在线搜索和播放音乐! 首 ...

  5. html怎么设置点击播放音乐,html5点击播放音乐试听按钮动画特效

    特效描述:html5 点击播放 音乐试听 按钮动画特效.html5鼠标滑过或点击播放音乐试听特效 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 Examples eventType ...

  6. html禁止自动播放音乐代码,HTML Audio autoplay用法及代码示例

    音频自动播放属性用于设置或返回音频是否应在加载后立即开始播放.它可以用来指定音频在加载后应立即自动开始播放. 用法: 返回自动播放属性:audioObject.autoplay 设置自动播放属性:au ...

  7. Android 代码实现整数处理为小数,Android EditText限制输入整数和小数的位数的方法示例...

    直接上代码 新建DecimalInputTextWatcher类继承TextWatcher (代码可直接复制使用) import android.text.Editable; import andro ...

  8. android 连接蓝牙耳机 播放音乐,android 手机怎么实现和蓝牙耳机建立连接,连接之后可以听音乐...

    如题,手机和蓝牙耳机配对之后,怎么建立连接 解决方案 20 BluetoothA2dpService是底层的Service类,你可以通过BluetoothA2dp类来使用它 android.bluet ...

  9. android从网络播放音乐,Android实现多媒体之播放音乐

    闲来无聊,最近了解了一下多媒体的一些初步知识. 音频播放主要设计到MediaPlayer这个类,播放音频的路径可以来源于三个地方. 1.应用内的音频 public class MediaPlayAct ...

  10. android 获取本地音乐,Android 获取本地音乐

    获取到Android设备的本地音乐,并显示音乐的时长,专辑图片,音乐名字以及歌手姓名等.当设备从播放器中下载音乐的时候,这些信息都会存储到设备中.我们获取的时候可以通过设备暴露给我们的ContentP ...

最新文章

  1. C3P0_and_pro.properties配置文档代码
  2. NSArray排序问题
  3. 设计模式 命令模式 之 管理智能家电
  4. PHP实现10亿个商品编码ing
  5. 09.snapshot and restore操作
  6. ubunt 下 配置samba 服务器
  7. UNITY3D 脑袋顶血顶名
  8. python怎么开发工具_为程序员和新手准备的8大Python开发工具
  9. linux shell数据重定向(输入重定向与输出重定向)详细分析 下(转)
  10. Win8系统 界面大放送(Win8 抢先版)
  11. 200Smart PLC 与丹佛斯变频器MODBUS RTU通讯实例
  12. MySQL多表联查常用函数数据库设计规范
  13. ubuntu下安装万能五笔
  14. golang 实现微信聊天机器人
  15. 关于A卡和N卡对opengl驱动问题
  16. 非常有意思的Flowlet
  17. 在Qt中使用OpenGL(二)
  18. html+canvas+输入文字换行,canvas文字换行
  19. 软件工程知识点复习第二章
  20. [附源码]计算机毕业设计JAVA旅游网站

热门文章

  1. DTL(Django templeate language)
  2. 图的有权最短路径及Dijkstra算法
  3. Redis Cluster内存爆满
  4. Helio Protocol — 分布式代币借贷和流动性质押协议
  5. 建立PCI网卡无盘工作站自动上网(转)
  6. Kotlin相关博客资源
  7. 香橙派 Ubuntu修改系统时间
  8. CF755F PolandBall and Gifts
  9. oracle RAC 集群无法启动
  10. 中国25张金融牌照大全