当前位置: 首页 > 知识库问答 >
问题:

声音池播放数倍Android

东门令
2023-03-14
 public class Suond {


    protected  static int suond1 ,suond2,suond3,suond4,suond5,suond6,suond7;
    protected  static  SoundPool sou;
    protected  static  AudioAttributes aa;


    @SuppressLint("NewApi") 
    @SuppressWarnings("deprecation")

    protected static void oi(Context Con ){


         if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){

             aa = new AudioAttributes.Builder()
            .setUsage(AudioAttributes.USAGE_GAME)
            .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
            .build();

 sou = new SoundPool.Builder().setMaxStreams(10)
.setAudioAttributes(aa).build();

                  suond1 = sou.load(Con,R.raw.Music1,1);
                  suond2 = sou.load(Con,R.raw.Music2,1);
                  suond3 = sou.load(Con,R.raw.Music3,1);
                  suond4 = sou.load(Con,R.raw.Music4,1);
                  suond5 = sou.load(Con,R.raw.Music5,1);
                  suond6 = sou.load(Con,R.raw.Music6,1);
                  suond7 = sou.load(Con,R.raw.Music7,1);
                           }

             else{ sou = new SoundPool(10,AudioManager.STREAM_MUSIC,1);

                  suond1 = sou.load(Con,R.raw.Music1,1);
                  suond2 = sou.load(Con,R.raw.Music2,1);
                  suond3 = sou.load(Con,R.raw.Music3,1);
                  suond4 = sou.load(Con,R.raw.Music4,1);
                  suond5 = sou.load(Con,R.raw.Music5,1);
                  suond6 = sou.load(Con,R.raw.Music6,1);
                  suond7 = sou.load(Con,R.raw.Music7,1);

                 }  

                }               

    }
valueAnimator.addListener(new Animator.AnimatorListener() {
      @Override
      public void onAnimationStart(Animator animation) {


        suond.sou.play(Suond.suond1, 1, 1, 1, 0, 1);

      }

      @Override
      public void onAnimationEnd(Animator animation) {


          Suond.sou.play(Suond.suond2, 1, 1, 1, 0, 1);






      }

      @Override
      public void onAnimationCancel(Animator animation) {

      }

      @Override
      public void onAnimationRepeat(Animator animation) {

      }
    });

 valueAnimator.setDuration(2000);
 valueAnimator.start();
 }

共有1个答案

鄂和璧
2023-03-14

(1)您的代码中有错别字,那么您是如何编译它的?

Suond.sou.play(Suond.suond2, 1, 1, 1, 0, 1);
suond.sou.play(Suond.suond1, 1, 1, 1, 0, 1);

不管怎样,它应该是:

Suond.sou.play(Suond.suond2, 1, 1, 1, 0, 1);

(2)MaxStreams设置为10,因此只能有10个并发流(而不是16):

sou = new SoundPool.Builder().setMaxStreams(10).setAudioAttributes(aa).build();
else{ sou = new SoundPool(10,AudioManager.STREAM_MUSIC,1);
int streamID = Suond.sou.play(Suond.suond2, 1, 1, 1, 0, 1);//streamID better as an integer array
//loop round your active sounds
sou .stop(streamID) ;stop ONE active sound
sou .release();
 类似资料:
  • 播放(播放音效/播放录音)

  • 问题内容: 我正在尝试使用pygame播放声音文件(.wav),但是当我启动它时却听不到任何声音。 这是代码: 我也尝试使用频道,但结果是一样的 问题答案: 您的代码在我的机器上可以正常运行(Mac OSX 10.5,Python 2.6.4,pygame 1.9.1)。您正在使用哪些OS,Python和pygame版本?您是否可以通过其他方式(例如,在Mac的终端上或在Windows控制台上,然

  • 问题内容: 以下代码为什么不播放声音?它为play()返回“ true”,但我听不到任何声音。 如果我改用以下代码,则可以听到声音。 OS X优胜美地10.10.3 Xcode 6.2 问题答案: 问题是,您的AVAudioPlayer是一个 局部变量 。因此,它会立即不复存在-在开始播放之前,更不用说完成播放了。 解决方案:改为将其设置为 属性 ,以使其 持久存在 。

  • 问题内容: 我正在Android上创建游戏,并且已经将这个问题搁置了一段时间,现在又回到了问题上。在我的游戏中,我有背景音乐,枪声,爆炸声等,而且我需要能够同时玩它们。现在,当我在SoundPool类上调用play时,当前正在播放的声音被打断,新的声音开始播放。下面是我的SoundManager类及其用法。任何帮助将不胜感激,因为这确实是我需要拥有如此多音效的第一款游戏。谢谢! …这是我如何使用该

  • 问题内容: 在Python中播放声音文件(.wav)的最简单方法是什么?最简单的说,我指的是最独立的平台,并且需要最少的依赖。pygame当然是一个选择,但听起来似乎有些过分。 问题答案: Snack Sound Toolkit可以播放wav,au和mp3文件。

  • 问题内容: 我正在尝试播放声音,但无法正常工作。 编辑1: 仍然行不通。 编辑2 :此代码有效。我的设备处于静音模式。 问题答案: 对您的代码进行了修改: Swift 3和Swift 4.1: