一种使用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. java单例模式(两种常用模式)

    单例模式是java中常见的设计模式 特点: 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有的其他对象提供这一实例 单例模式是某个类只能有一个实例而且自动实例化并且向整个系统提 ...

  2. 自定义控件 闪烁效果的TextView

    使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android ...

  3. Asp.Net--上传大文件(页面超时)

    几个方法: 修改文件上传大小的限制 以文件形式保存到服务器 转换成二进制字节流保存到数据库 将二进制通过循环的方式写入磁盘 一.修改文件上传大小的限制 通过对web.config和machine.co ...

  4. Assimp场景模型输出Collada,STL,3DPDF

    本文介绍开源库模型的几种输出格式:DAE,STL,3DPDF. Assimp是C++写的,AssimpNet是C#重构其中主要数据结构,并开通Assimp中重要方法的调用接口,为不熟悉C++的码农带来 ...

  5. 轻松完成WAP手机网站搭建

    用PHPCMS最新发布的V9搭建了PHPCMS研究中心网站(http://phpcms.org.cn)完成后,有用户提出手机访问的问题,于是着手搭建WAP无线站(wap.phpcms.org.cn). ...

  6. 深入研究MiniMVC之后续篇

    今天在园子看到<深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的>之后,本来是不打算开博来续这个后传,不过,在那边回了个评论之后, ...

  7. ECSTORE关于后端FILTER条件的表现形式以及含义。

    cstore关于后端filter条件的表现形式以及含义如下: $FILTERARRAY= ARRAY( 'THAN'=>' > '.$VAR, 'LTHAN'=>' < '.$ ...

  8. MySQL查询指定时间的数据

    user_event :用户事件表 create_time :表中存储时间的字段 #获取当月数据 SELECT * FROM user_event WHERE DATE_FORMAT(create_t ...

  9. Android相关类关系

    Activity Window.WindowManager View. interface----ViewManager LayoutInflater Components Activity.Serv ...

  10. 拍照-----------android系统 至关重要的功能

    一 在Android 中,拍照对应的Action 是android.provider.MediaStore.ACTION_IMAGE_CAPTURE. 用于拍照的Activity 需要返回照片图像数据 ...