2013-01-01 72 views
0

我有一个声音剪辑播放,而我显示一些数字,然后希望它停止。然后我想重复这个过程。Soundpool回路不能正常工作

初始化的东西:

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

能正常工作每个其他时间。 所以它第一次播放并在正确的时间停下来。 第二次我什么都听不到 但它然后第三次工作

如果我拿出循环,然后它的作品。

任何帮助将appretiated

+0

尝试改变从流ID = soundPool.play(soundRoll,体积,容量,1, -1,1); streamID = soundPool.play(soundRoll,volume,volume,1,1,1);删除-1 n检查它 –

+0

发布您的代码为线程.. – Deepzz

回答

0

看来,如果我从MP3切换到OGG文件,错误消失