java - SoundPool 只停止一次

标签 java android audio soundpool soundplayer

第一次按下按钮停止声音。但是在那之后按下它没有任何效果。这是我的 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);
}

最佳答案

SoundPool.stop() 采用流 ID(播放 的返回值),而不是声音 ID(从 load 返回值)。

它们不是一回事。

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

关于java - SoundPool 只停止一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019438/

相关文章:

android - 始终在 Android ListView 中显示标题

node.js - 如何降低nodejs服务器端音频文件的音调?

java - 使用 Jackson/FasterXML 读取 XML 时如何忽略某些元素?

android - Samsung Galaxy 蓝牙驱动程序

Android studio - 用户登录

Angularjs:更改音频类别已结束

javascript - 用JavaScript播放音频不断

java - 应用程序停止工作 : Could not find class 'android.graphics.drawable.RippleDrawable'

使用并发的 Java 性能

TableView 中的 JavaFX 单元格颜色