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 ...
随机推荐
- $_SERVER变量 以及 PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
PHP $_SERVER['PHP_SELF'] $_SERVER['PHP_SELF'] 表示当前 php 文件相对于网站根目录的位置地址,与 document root 相关. 假设我们有如下网址 ...
- linux内存机制
~# free -m total used free shared buffers cachedMem: 16086 8579 7507 0 152 800 ...
- ASP.Net用jQuery ajax实现页面局部刷新
刚开始的时候使用asp的updatepanel控件实现局部刷新,而且在本地运行正确,但是部署到服务器上就变成整个页面全部刷新了.服务器用的是Windows server2000,本地机子上用的是win ...
- 附加数据库报错:无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问。)"
今天在附加数据库的时候出现如图报错信息: 无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问.)"错信息如图:(是不是远程服务器数据库附加出现只读那个情 ...
- iframe顶部跳转跨域问题
$("#button").on("click", function () { // top.location.locatio ...
- 网络NSURLSession
简单下载图片 dispatch_queue_t queue =dispatch_queue_create(NULL, DISPATCH_QUEUE_CONCURRENT); dispatch_asyn ...
- Unity5.3——UI之Canvas
原文:http://docs.unity3d.com/Manual/UISystem.html Canvas 所有的UI都应该放在Canvas里面(子层).Canvas是一个带有Canvas组件的Ga ...
- php 文件操作中几种方法整理
1.获取文件夹下所有文件个数 echo ShuLiang("../0503lianxi"); function ShuLiang($filename) { if(is_dir($f ...
- JS 闭包问题
一.什么是闭包?“官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 相信很少有人能直接看懂这句话,因为他描述的太 ...
- Reshaper 快捷键
配置单个键盘快捷键 1.在主菜单上,选择Tools | Options 2.在导航视图中选择Environment | Keyboard 3.在命令列表中,选择启动ReSharper的命令名称.浏览列 ...