0

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

初始化的东西:

    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();
    }

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

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

任何帮助将不胜感激

4

1 回答 1

0

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

于 2013-01-02T00:38:52.437 回答