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 ...
随机推荐
- source insight3.5中文乱码解决方案
source insight3.5中文乱码,网上看别人说改变宽字体.宋体等方法都不起效.根本原因是,source insight 3.5 不支持Unicode编码,所以导致中文的乱码,将文件转为gb2 ...
- Linux系统中C&Cpp程序开发(一)
之前一直在Windows系统下进行程序的设计,近期开始学习使用Linux系统,因而打算将程序开发也转移到Linux系统下.今天先简单介绍一下该系统下的C程序开发步骤. 首先要预先安装vim和gcc工具 ...
- Chrome: Shockwave Flash isn't responding
这个问题问 Google 解决得比较快,百度里尽是转载党的东西! 1. 到 chrome://settings/content 找到 Plug-ins 项目 2. 点击 Plug-ins 里的 Exc ...
- (转)ASP.NET版本的Kindeditor插件的使用(同步)
昨天老大让我自己下载一个kindeditor说要放到“描述”功能中,并且不能提交(一边在textarea中写一边在label控件中将数据显示出来),由于从来没弄过,实在费了一翻劲.所以将此记录下来,一 ...
- Xcode简易基础篇,以新手角度去操作
声明:此Newlife XCode非Mac的XCode,避免误会. 日常用的Newlife X组件的相关资源,不限于XCode,只是以XCode组件为主: 1.QQ群:1600800 2.博客 : h ...
- 《javascript设计模式》--接口
关于javascript设计模式书中的接口,记录如下 //TODO 增加了一个判断条件,可以只在生产环境中调用 接口var Interface = function(name,methods){ i ...
- SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;
情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码) 情况二: Controller 中 request.getParameter()获取到的是乱 ...
- CSS特殊性
样式的优先级取决于特殊性,特殊性为0,0,0,0 Ø每个元素或伪元素选择器贡献特殊性为 0,0,0,1 Ø每个类.伪类或者属性选择器的特殊性为 0,0,1,0 Ø每个ID选择器的特殊性为 0,1,0, ...
- Flask学习记录之Flask-Admin
相信用过Django框架的都不会忘记它强大的Admin功能,Flask-admin是一款能够与Django Admin所媲美的扩展,能够快速创建Web管理界面,实现了用户.文件增删改查等常用功能:也可 ...
- 关于把A表中的数据复制到B表中。
最近公司需要把sql中的数据给整理出来,这就牵涉到数据转移问题. 我平时是很少接触sql这一块的.所以碰到这个问题甚是伤脑筋. 不过还好,这问题并不像我想象中的那么的困难. 以前做过把数据插入到临时表 ...