安卓7.0 声音适配(游戏声音),安卓7.0声音播放失灵,适配.
来源:互联网 发布:照片相册制作软件 编辑:程序博客网 时间:2024/04/30 18:18
这两天开发适配7.0遇见一个坑. 7.0手机在游戏开局两局后 声音会 播放不出来. 需要适配7.0的声音. 不多说,亮代码
一开始 我用MediaPlayer播放声音.
GameMediaPlayer.StarPlay(GameDrawStart.this, 3);GameMediaPlayer中的方法是:
public class GameMediaPlayer { public static void StarPlay(Context context, int Type) { MediaPlayer mMediaPlayer = null; switch (Type) { //死亡 case 1: mMediaPlayer = MediaPlayer.create(context, R.raw.dead); mMediaPlayer.start(); break; //游戏输了 case 2: mMediaPlayer = MediaPlayer.create(context, R.raw.gamelow); mMediaPlayer.start(); break; default: break; } }}但是,用MediaPlayer,会造成在部分7.0手机上,游戏开局几局后,声音播放不出来.
后来,换成了播放声音的另一种方式SoundPool.
使用SoundPool时,刚开始也遇见了一个坑,声音会失真.
下面亮出声音失真的代码:
SoundPool.
我在对应调用声音的地方,
play(5, 0);
private Map<Integer, Integer> mapSRC;private SoundPool sp; //声音池//初始化声音池private void initSoundPool(){ sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0); mapSRC = new HashMap<Integer, Integer>(); mapSRC.put(1, sp.load(this, R.raw.gamedrawansererro, 0)); mapSRC.put(2, sp.load(this, R.raw.gamedrawanserright, 0)); mapSRC.put(3, sp.load(this, R.raw.timecoundown, 0)); mapSRC.put(4, sp.load(this, R.raw.gamelow, 0)); mapSRC.put(5, sp.load(this, R.raw.gamewinner, 0));}private void play(int sound, int number){ sp.play(mapSRC.get(sound),//播放的声音资源 1.0f,//左声道,范围为0--1.0 1.0f,//右声道,范围为0--1.0 0, //优先级,0为最低优先级 number,//循环次数,0为不循环 0);//播放速率,0为正常速率}结果还会失真.
后来换成
private SoundPool soundPool;
soundPool = new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);soundMap.put(1, soundPool.load(this, R.raw.gamedrawansererro, 1));soundMap.put(2, soundPool.load(this, R.raw.gamedrawanserright, 1));soundMap.put(3, soundPool.load(this, R.raw.timecoundown, 1));soundMap.put(4, soundPool.load(this, R.raw.gamelow, 1));soundMap.put(5, soundPool.load(this, R.raw.gamewinner, 1));
注意 在当前activity销毁时 要注销SoundPool
@Overrideprotected void onDestroy() { super.onDestroy(); if(soundPool != null){ soundPool.release(); }}
1 0
- 安卓7.0 声音适配(游戏声音),安卓7.0声音播放失灵,适配.
- 安卓去除拍照声音
- 安卓SoundPool播放声音(及具体参数解析)
- 安卓播放声音同时震动的效果实现
- 安卓SoundPool只能发出一次声音,或者没有声音
- 安卓声音管理器AudioManager的使用
- 安卓点击按钮发出声音
- 安卓浏览器网页播放视频时后台声音不停止
- Xamarin 安卓VideoView 播放视频有声音无图像(已解决)
- 安卓使用SoundPool播放较短的声音MP3(短信铃声)
- genymotion 安卓模拟器中 没有声音,能整出来声音不,大神求救?
- genymotion 安卓模拟器中 没有声音,能整出来声音不,大神求救?
- 【安卓开发】CubieBoard2解决声音默认输出设置
- 安卓使用MediaRecorder录制音频(声音)
- 播放声音
- 播放声音
- 播放声音
- 播放声音
- MFC 的CListCtrl 类
- ambari与cloudera-manamger5.8.2
- 用Android Studio打Jar包
- IT技术视频分享
- 浅谈WebLogic和Tomcat
- 安卓7.0 声音适配(游戏声音),安卓7.0声音播放失灵,适配.
- iOS 使用KeyChain保存数据
- Android 进程间通信AIDL讲解 二
- Swift10-字符串的基本简介及用法
- opencv 无法查找或打开coreXXX.pdb引起的filestorage无法读的问题
- HBase原理
- kettle转换工具
- C# 基于Emgu类库 调用笔记本摄像头进行脸部识别
- R语言在ubuntu下的编译安装