2013-01-01 74 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文件,錯誤消失