一种使用MediaPlayer,使用这种方式通常是播放比较长的音频,如游戏中的背景音乐。

代码如下:

  1. private MediaPlayer mPlayer = null;
  2. mPlayer = MediaPlayer.create(this,R.raw.music);
  3. mPlayer.setLooping(true);
  4. mPlayer.start();

另一种是使用SoundPool进行播放,通常都是播放短音效,比如枪声或者水滴声。

首先需要设置左声道和右声道的音量:

  1. //实例化AudioManager对象,控制声音
  2. private AudioManager am =null;
  3. //最大音量
  4. float audioMaxVolumn;
  5. //当前音量
  6. float audioCurrentVolumn;
  7. float volumnRatio;
  1. //实例化AudioManager对象,控制声音
  2. am = (AudioManager)this.getSystemService(this.AUDIO_SERVICE);
  3. //最大音量
  4. audioMaxVolumn = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
  5. //当前音量
  6. audioCurrentVolumn = am.getStreamVolume(AudioManager.STREAM_MUSIC);
  7. volumnRatio = audioCurrentVolumn/audioMaxVolumn;
  1. //然后就是需要初始化SoundPool,并且把音频放入HashMap中
  1. //音效播放池
  2. private SoundPool soundPool = new SoundPool(2,AudioManager.STREAM_MUSIC,0);
  3. //存放音效的HashMap
  4. private Map<Integer,Integer> map = new HashMap<Integer,Integer>();
  1. map.put(0,soundPool.load(this,R.raw.right,1));
  2. map.put(1, soundPool.load(this,R.raw.wrong,1));
  1. //最后就是进行播放
    1. soundPool.play(
    2. map.get(key),//声音资源
    3. volumnRatio,//左声道
    4. volumnRatio,//右声道
    5. 1,//优先级
    6. 0,//循环次数,0是不循环,-1是一直循环
    7. 1);//回放速度,0.5~2.0之间,1为正常速度

Android播放音频的两种方式的更多相关文章

  1. 【Android】播放音频的几种方式介绍

    接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...

  2. Android请求服务器的两种方式--post, get的区别

    android中用get和post方式向服务器提交请求_疯狂之桥_新浪博客http://blog.sina.com.cn/s/blog_a46817ff01017yxt.html Android提交数 ...

  3. Android录制音频的三种方式

    对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制 ...

  4. Android多activity启动两种方式浅谈

    (1)第一种方式就是常见的通过intent来启动,被启动的activity需要在mainfest里面注册activity (2)第二种就是通过setContentView来启动,这里activity不 ...

  5. android 启动 service 的两种方式,及什么时候用哪个 android 什么时候用bindService

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha android  什么时候用bindService ============ 启动方式有 ...

  6. Android启动Activity的两种方式与四种启动模式

    1.在一个Activity中调用startActivity()方法 2.在一个Activity中调用startActivityRequest()方法. 重写onActivityResult方法,用来接 ...

  7. android 中退出程序的两种方式

    转自:http://blog.sina.com.cn/s/blog_5da93c8f0100t76l.html 思考:如何安全的退出程序? finish是Activity的类,仅仅针对Activity ...

  8. [转载]Android 生成keystore,两种方式

    Refer : http://blog.csdn.net/ms03001620/article/details/8490314 一.eclipse 中生成android keystore 建立任意一个 ...

  9. Android 生成keystore,两种方式

    一.eclipse 中生成android keystore 建立任意一个android项目(例如:AntForAndroid) 右键AntForAndroid根目录弹出菜单->Android T ...

随机推荐

  1. Protobuf实现Android Socket通讯开发教程

    本节为您介绍Protobuf实现Android Socket通讯开发教程,因此,我们需要先了理一下protobuf 是什么? Protocol buffers是一种编码方法构造的一种有效而可扩展的格式 ...

  2. 怎么设置tomcat管理员的用户名和密码

    我们常常要进入Tomcat的管理界面来进行相应的操作,我们首先得有一个管理员的账户和密码.而Tomcat默认是没有管理员账户的,那么我们该怎么来添加一个管理员账户呢? 如果我们输入错误的Tomcat管 ...

  3. python模块基础之OS模块

    OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: >>> import os #导入os模块 ...

  4. jquery之前后台交互

    //js文件 function getMinatoSingleGoodsCategorys(type){ $("#"+type+"MinatoGoodsCategoryI ...

  5. Resizable(调整大小)组件

    一.加载方式 //class 加载方式 <div id="rr" class="easyui-resizable" data-options=" ...

  6. 解决:用PivotGridControl 与 chartControl 配合使用,Series最大只显示10条

    修改 PivotGridControl  控件的 OptionsChartDataSource.MaxAllowedSeriesCount 的值就可以了  默认为10条

  7. 在Ubuntu下的Apache上建立新的website,以及enable mono

    1. 在Apache下建立新的web site a. $>cd /etc/apache2/ b. $>vi ports.conf 填加Listen 8090(注意不要打开8080,因为To ...

  8. Ruby与sass 与compass安装

     Ruby安装 windows平台下使用Rubyinstaller安装 1) 下载Rubyinstaller 2) 安装Rubyinstaller 记得勾选 add ruby executables ...

  9. Android --------- 命名规范

    工程 软件名称,最好是英文首字母大写:如MobileSafe. 包 企业单位网址的倒序+软件名称:如com.baidu.mobilesafe. 类 类中分为:(头字母小写,其他每个单子首字母大写) 1 ...

  10. partial修饰符,可以让同类命名空间下出现重名

    public partial class Person { } public partial class Person { } partial修饰符,可以让同类命名空间下出现重名,两个类其实是一个类, ...