Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – 同时播放声音Android大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_419_1@我在 Android上创造了一个游戏,而且我已经把这个问题放在一段时间了,现在我刚刚回来了.在我的游戏中,我有一个背景拍摄,枪声,爆炸等等,我需要能够同时玩.现在,当我在SoundPool类上打电话时,当前播放的声音被中断,新的播放声音开始播放.我的SoundManager类在下面以及用法.任何帮助将不胜感激,因为这真的是我的第一个游戏,我需要这么多的音效.谢谢!
public class SoundManager {
private  SoundPool mSoundPool;
private  HashMap<Integer,Integer> mSoundPoolMap;
private  Au@L_772_7@manager  mAu@L_772_7@manager;
private  Context mContext;

public SoundManager(Context theContext) {
    mContext = theContext;
    mSoundPool = new SoundPool(4,Au@L_772_7@manager.STREAM_MUSIC,0);
    mSoundPoolMap = new HashMap<Integer,Integer>();
    mAu@L_772_7@manager = (Au@L_772_7@manager) mContext.getSystemservice(Context.AU@L_772_7@_serviCE);
}

public void addSound(int index,int SoundID) {
    mSoundPoolMap.put(index,mSoundPool.load(mContext,SoundID,1));
}

public void playSound(int indeX) {
    float streamVolume = mAu@L_772_7@manager.getStreamVolume(Au@L_772_7@manager.STREAM_RING);
    streamVolume = streamVolume / mAu@L_772_7@manager.getStreAMMaxVolume(Au@L_772_7@manager.STREAM_RING);

    mSoundPool.play((Integer) mSoundPoolMap.get(indeX),streamVolume,1,1f);
}

public void playLoopedSound(int indeX) {
    float streamVolume = mAu@L_772_7@manager.getStreamVolume(Au@L_772_7@manager.STREAM_MUSIC);
    streamVolume = streamVolume / mAu@L_772_7@manager.getStreAMMaxVolume(Au@L_772_7@manager.STREAM_MUSIC);

    mSoundPool.play((Integer) mSoundPoolMap.get(indeX),-1,1f);
}
}

…这里是我如何使用类的一个例子.

SoundManager sm = new SoundManager(this);
sm.addSound(0,R.raw.explosion);
sm.playSound(0);

…所以用这种风格,我把所有的声音添加到SoundPool上,然后根据用户输入,我只想播放声音.这看起来正确吗?或者我应该尝试不同的方法吗?

解决方法

那么我最终确定了这一点,以防其他人想知道.问题不在于它一次不能播放多个声音,只能在同一时间播放4个声音,这给我的声音停止和启动.在构造函数这行 @H_737_3@mSoundPool = new SoundPool(4,0);

需要改变,以允许更多的流在同一时间播放.所以通过将第一个参数从4改为20,然后可以同时播放20个声音.这个游戏听起来好多了,哈哈.希望这有助于某人.

大佬总结

以上是大佬教程为你收集整理的java – 同时播放声音Android全部内容,希望文章能够帮你解决java – 同时播放声音Android所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。