Android播放音频的两种方式
一种使用MediaPlayer,使用这种方式通常是播放比较长的音频,如游戏中的背景音乐。
代码如下:
- private MediaPlayer mPlayer = null;
- mPlayer = MediaPlayer.create(this,R.raw.music);
- mPlayer.setLooping(true);
- mPlayer.start();
另一种是使用SoundPool进行播放,通常都是播放短音效,比如枪声或者水滴声。
首先需要设置左声道和右声道的音量:
- //实例化AudioManager对象,控制声音
- private AudioManager am =null;
- //最大音量
- float audioMaxVolumn;
- //当前音量
- float audioCurrentVolumn;
- float volumnRatio;
- //实例化AudioManager对象,控制声音
- am = (AudioManager)this.getSystemService(this.AUDIO_SERVICE);
- //最大音量
- audioMaxVolumn = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
- //当前音量
- audioCurrentVolumn = am.getStreamVolume(AudioManager.STREAM_MUSIC);
- volumnRatio = audioCurrentVolumn/audioMaxVolumn;
- //然后就是需要初始化SoundPool,并且把音频放入HashMap中
- //音效播放池
- private SoundPool soundPool = new SoundPool(2,AudioManager.STREAM_MUSIC,0);
- //存放音效的HashMap
- private Map<Integer,Integer> map = new HashMap<Integer,Integer>();
- map.put(0,soundPool.load(this,R.raw.right,1));
- map.put(1, soundPool.load(this,R.raw.wrong,1));
- //最后就是进行播放
- soundPool.play(
- map.get(key),//声音资源
- volumnRatio,//左声道
- volumnRatio,//右声道
- 1,//优先级
- 0,//循环次数,0是不循环,-1是一直循环
- 1);//回放速度,0.5~2.0之间,1为正常速度
Android播放音频的两种方式的更多相关文章
- 【Android】播放音频的几种方式介绍
接下来笔者介绍一下Android中播放音频的几种方式,android.media包下面包含了Android开发中媒体类,当然笔者不会依次去介绍,下面介绍几个音频播放中常用的类: 1.使用MediaPl ...
- Android请求服务器的两种方式--post, get的区别
android中用get和post方式向服务器提交请求_疯狂之桥_新浪博客http://blog.sina.com.cn/s/blog_a46817ff01017yxt.html Android提交数 ...
- Android录制音频的三种方式
对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制 ...
- Android多activity启动两种方式浅谈
(1)第一种方式就是常见的通过intent来启动,被启动的activity需要在mainfest里面注册activity (2)第二种就是通过setContentView来启动,这里activity不 ...
- android 启动 service 的两种方式,及什么时候用哪个 android 什么时候用bindService
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha android 什么时候用bindService ============ 启动方式有 ...
- Android启动Activity的两种方式与四种启动模式
1.在一个Activity中调用startActivity()方法 2.在一个Activity中调用startActivityRequest()方法. 重写onActivityResult方法,用来接 ...
- android 中退出程序的两种方式
转自:http://blog.sina.com.cn/s/blog_5da93c8f0100t76l.html 思考:如何安全的退出程序? finish是Activity的类,仅仅针对Activity ...
- [转载]Android 生成keystore,两种方式
Refer : http://blog.csdn.net/ms03001620/article/details/8490314 一.eclipse 中生成android keystore 建立任意一个 ...
- Android 生成keystore,两种方式
一.eclipse 中生成android keystore 建立任意一个android项目(例如:AntForAndroid) 右键AntForAndroid根目录弹出菜单->Android T ...
随机推荐
- gcc总结【基本用法】【选项】【动静态库】(转)
1.////////////////////////////////////////////////////////////////////////////////////////////////// ...
- 酷Q机器人,QQ机器人使用教程
软件介绍: 酷Q,软件酷Q机器人是一款基于webqq开发的一款自动接收.处理qq消息的软件. 改程序使用易语言编写,精简大量不必要代码,减小了软件体积,优化程序速度,使得酷Q更加轻巧好用. 在消息处理 ...
- javascript封装id|class|元素选择器
由于各个浏览器都支持的选择方法只有如下三种: 1 document.getElementById() 2 document.getElementsByName() 3 document.getElem ...
- How to recover after deleting the symbolic link libc.so.6?
参考资料: http://stackoverflow.com/questions/12249547/how-to-recover-after-deleting-the-symbolic-link-li ...
- 使用匿名管道在进程间通信 (System.IO.Pipes使用)(转)
原文地址:http://www.cnblogs.com/yukaizhao/archive/2011/08/04/system-io-pipes.html 管道的用途是在同一台机器上的进程之间通信,也 ...
- XAML 名称范围 (x:) 语言特性
本节介绍为 Windows 运行时实现的 XAML 语言特性的参考信息. 本部分内容 主题 描述 x:Class 属性 配置 XAML 编译,在标记和代码隐藏之间连接分部类.代码分部类在一个独立的代码 ...
- (转)ip地址,手机ip查询
页面地址:http://www.ip138.com/ 外链地址(实际主页面里面有)http://www.ip138.com/iplink.htm 外链地址里面的内容: <FORM METHOD= ...
- oracle服务开机自启动
1.修改oracle系统配置文件::/etc/oratab vi /etc/oratab orcl:/opt/oracle/product/10.2.0/db_1:Y 2.在 /etc/init.d/ ...
- C#字符串的比较
Console.WriteLine("输入字符1"); string n1 = Console.ReadLine(); Console.WriteLine("输入字符2& ...
- java开发中的23中设计模式
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...