1

最初にボタンを押すと、サウンドが停止します。しかし、その後押しても何の効果もありません。これは私のJavaコードです:

public class App extends MultiTouchActivity {

SoundPool sp;
    int  dub1s;

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub

    sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
     dub1s = sp.load(this, R.raw.dub1, 1);


}

public void dubstep1(View view) {

    sp.stop(dub1s);
    sp.play(dub1s, 1, 1, 1, 0, 1f);
}
4

1 に答える 1

2

SoundPool.stop()サウンドID(からの戻り値)ではなく、ストリームID(からの戻り値)を受け取ります。playload

それらは同じものではありません。

public class App extends MultiTouchActivity {

    SoundPool sp;
    int  mSoundId;
    int  mStreamId = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
    sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
    mSoundId = sp.load(this, R.raw.dub1, 1);
}

public void dubstep1(View view) {
    if(mStreamId != 0) {
        sp.stop(mStreamId);
    }
    mStreamId = sp.play(mSoundId, 1, 1, 1, 0, 1f);
}
于 2012-10-22T20:41:08.473 に答える