【问题标题】:Soundpool with loop not working properly带循环的 Soundpool 无法正常工作
【发布时间】:2013-01-01 06:16:19
【问题描述】:

我在显示一些数字时播放了一段声音片段,然后希望它停止。然后我想重复这个过程。

初始化东西:

    private SoundPool soundPool;
    private int soundRoll;
    boolean soundloaded = false;
    this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
    soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
    soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
      @Override
      public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
            soundloaded = true;
      }
    });
    soundRoll = soundPool.load(this, R.raw.roll, 1);

线程调用:

    public void update() {
    .......
    new Thread(new Runnable() {
       public void run() {
         int streamID = 0;
         streamID = soundPool.play(soundRoll, volume, volume, 1, -1, 1);
         ... loop to animate text....
         soundPool.stop(streamID);
         }
    }).start();
    }

这每隔一段时间都可以正常工作。 所以它第一次播放并在正确的时间停止。 第二次我什么也没听到 但后来它第三次起作用了

如果我取出循环,那么它可以工作。

任何帮助将不胜感激

【问题讨论】:

  • 尝试改变 streamID = soundPool.play(soundRoll, volume, volume, 1, -1, 1); to streamID = soundPool.play(soundRoll, 音量, 音量, 1, 1, 1);删除 -1 n 检查它
  • 发布你的线程代码..

标签: android loops soundpool


【解决方案1】:

似乎如果我从 MP3 切换到 OGG 文件,错误就会消失

【讨论】:

    猜你喜欢
    • 2019-01-01
    • 2014-11-07
    • 2013-06-20
    • 2014-12-02
    • 2013-08-09
    • 2013-10-30
    相关资源
    最近更新 更多