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 ...
随机推荐
- SpringMvc之@RequestParam详解
@RequestParam是传递参数的. @RequestParam用于将请求参数区数据映射到功能处理方法的参数上. public String queryUserName(@RequestParam ...
- (五)《Java编程思想》——final关键字
可能使用final的三种情况:数据.方法.类. 1.final数据 final 常量必须是基本类型数据,且在定义时须赋值: 一个既是static又是final的域只占据一段不能改变的存储空间,只有一份 ...
- Jenkins学习之——(1)Jenkins的安装与配置
1.最近公司要求做自动化部署,于是自学了jenkins.这个参考书很少,网上的文章也讲得很模糊,于是打算把自己学习东西记下来,希望对大家有所帮助. 一.jenkins的安装 到jenkins官网(ht ...
- JQuery日历插件My97DatePicker日期范围限制
My97DatePicker是一个非常优秀的日历插件,不仅支持多种调用模式,还支持日期范围限制. 常规的调用比较简单,如下所示: 1 <input class="Wdate" ...
- HTML标签区别
一.div和span的区别 div是一个块级元素,可以包含段落,表格等内容,用于放置不同的内容.一般我们在网页通过div来布局定位网页中的每个区块. span是一个内联元素,没有实际意义,它的存在纯粹 ...
- php-fpm:fastcgi_finish_request()
开始研究php-fpm, 在php-fpm的官网上发现一些很有用的功能,记录一下 1.支持php脚本执行慢的log记录 ; The timeout for serving a single reque ...
- JS判断请求来自Android手机还是iPhone手机,根据不同的手机跳转到不同的链接。
<script type="text/javascript">var browser = {versions: function () {var u = navigat ...
- commons-beanutils使用
Jakarta Commons项目提供了相当丰富的API,我们之前了解到的Commons Lang只是众多API的比较核心的一小部分而已.Commons下面还有相当数量的子项目,用于解决各种各样不同方 ...
- 设置ListView每条数据之间的间隔
1:如果不需要分割线可以在xml布局文件中ListView下设置XML属性: android:divider="#00000000" android:dividerHeight=& ...
- cf D. Sereja ans Anagrams
http://codeforces.com/contest/368/problem/D #include <cstdio> #include <cstring> #includ ...