Android播放音频的两种方式

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

代码如下:

[java] view plain copy

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

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

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

[java] view plain copy

  1. //实例化AudioManager对象,控制声音
  2. private AudioManager am =null;
  3. //最大音量
  4. float audioMaxVolumn;
  5. //当前音量
  6. float audioCurrentVolumn;
  7. float volumnRatio;

[java] view plain copy

  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;

[java] view plain copy

  1. //然后就是需要初始化SoundPool,并且把音频放入HashMap中

[java] view plain copy

  1. //音效播放池
  2. private SoundPool soundPool = new SoundPool(2,AudioManager.STREAM_MUSIC,0);
  3. //存放音效的HashMap
  4. private Map<Integer,Integer> map = new HashMap<Integer,Integer>();

[java] view plain copy

  1. map.put(0,soundPool.load(this,R.raw.right,1));
  2. map.put(1, soundPool.load(this,R.raw.wrong,1));

[java] view plain copy

  1. //最后就是进行播放

[java] view plain copy

    1. soundPool.play(
    2. map.get(key),//声音资源
    3. volumnRatio,//左声道
    4. volumnRatio,//右声道
    5. 1,//优先级
    6. 0,//循环次数,0是不循环,-1是一直循环
    7. 1);//回放速度,0.5~2.0之间,1为正常速度
时间: 2024-11-05 13:52:26

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

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

接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPlayer播放音频 MediaPlayer的功能很强大,下面附上一张该类封装音频的生命周期图: MediaPlayer支持AAC.AMR.FLAC.MP3.MIDI.OGG.PCM等格式,MediaPlayer可以通过设置元数据和播放源来音频. 1.1播放Raw文件夹下面音频的元数据 //直接创建,不

android图片截取的两种方式

    文章主要提供android系统上拍照图片截取和图片 选择截取 两种方式,适用于app头像选择等环境. 拍照截取 打开相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,"自定义"); 截图 Intent intent = getCropImageIntent(data); startActivityForResult(intent, "

android菜单创建的两种方式和菜单项添加图标

    菜单创建的两种方式:     1.在xml文件中创建菜单: 具体代码: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="com.xunfang.menucreate.MainActivity" > //此处创建子菜单 <

android回调接口的两种方式

熟悉MS-Windows和X Windows事件驱动设计模式的开发人员,通常是把一个方法的指针传递给事件源,当某一事件发生时来调用这个方法(也称为“回调”).Java的面向对象的模型目前不支持方法指针,似乎不能使用这种方便的机制. 但是java本身拥有interface,我们可以用interface实现相同的效果.在android中,如果我们需要对一个button的点击事件往外传,可以有两种实现方式. 第一种方式的大体步骤是: 1.定义一个回调接口,用来捕捉和“存放”点击事件. public i

Android -- 播放视频的两种形式

1. 采用Intent调用外部播放器进行视频播放 Intent intent = new Intent(Intent.ACTION_VIEW); String type = "video/mp4"; Uri uri = Uri.parse("/sdcard/123.mp4"); intent.setDataAndType(uri, type); startActivity(intent); 2. 播放本地视频 把视频文件放到项目工程的 res/raw 文件下 Vid

android 中退出程序的两种方式

转自:http://blog.sina.com.cn/s/blog_5da93c8f0100t76l.html 思考:如何安全的退出程序? finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理:当调用System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放.在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就能关闭

Android 生成keystore的两种方式

一.eclipse 中生成android keystore 建立任意一个android项目(例如:AntForAndroid) 右键AntForAndroid根目录弹出菜单->Android Tools -> Export Signed Application Package... Next > 选择"Create new keystore"并且保存在一个目录下面(本例子保存在项目跟目录下) 输入密码,然后next 填写一些信息,填写的Alias 和 密码不要忘记了

Android 生成keystore,两种方式

一.eclipse 中生成android keystore 建立任意一个android项目(例如:AntForAndroid) 右键AntForAndroid根目录弹出菜单->Android Tools -> Export Signed Application Package... Next > 第二步:创建密钥库keystore,输入密钥库导出位置和密码,记住密码,下次Use existing keystore会用到 选择"Create new keystore"并

android 隐藏默认标题栏两种方式

在setconnetView()之前加入 requestWindowFeature(Window.FEATURE_NO_TITLE);//第一种 getWindow().setFlags(Window.FEATRUE_NO_TITLE,Window.FEATRUE_NO_TITLE);//第二种 原文地址:https://www.cnblogs.com/MYDoraemon/p/8605891.html