Android版的Soundpool - 播放循环异常

我遇到摆弄使用的Soundpool和.OGG文件循环的声音问题。 我有此HashMap设立找到关联到一个名称的声音和演奏它/停止它

public void playLoopSound(String soundName){ currentSound = (Integer) soundMap.get(soundName); if(currentSound != -1){ try{ Logger.log("Playing Loop Sound: " + currentSound); loopingSound = soundPool.play(currentSound, 1, 1, 0, -1, 1); } catch (Exception e) { Logger.log("Sound Playing Error: " + e.getMessage()); } } else { Logger.log("Sound Not Found"); } } public void stopLoopSound(){ soundPool.stop(loopingSound); loopingSound = 0; }

这种设置工作得很好,我开始循环到字符开始行走,当它停止行走停止。

然而,声音将停止播放,随机,一般一分钟左右已被使用(被打开和关闭)后...

有没有其他人遇到的Soundpool和循环的声音类似的问题?

--------------解决方案-------------

上的Soundpool阅读该文档清除了很多:

-playing声音传递一个int指的是加载的声音。 这种方法(和启动声音播放等),soundpool.play(INT)返回一个int指的是在其中的声音现在扮演的主题ID。

- 当你要停止的声音(或重复的声音),你必须使用的threadId的INT你刚回来时,你开始玩的声音,而不是声音本身的整型!

内的Soundpool类,那么,你的私人INT threadIDInt = mSoundPool.play/setloop/whatever(int soundtobeplayed,INT /浮volumeleft,INT /浮点volumeright,浮速度,诠释loopornot); [注:参数位组成; 看看'举起手来]

为了然后停止声音(或暂停,或将其设置为循环或不)传递mSoundPool.stop(threadIDINT);

TLDR:有这表示你的声音和内部INT的Soundpool用来表示当前您的声音播放流中的int之间的differnce。

分类:安卓 时间:2015-03-14 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.544 (s). 10 q(s)