快速说明:我正在使用 SoundPool 类
http://developer.android.com/reference/android/media/SoundPool.html
我这里有一个简单的按钮,按下时会播放循环声音。它工作得很好。但是,sounds.autoPause();
直到 API 8 才引入,我真的需要与纸杯蛋糕兼容的东西(API 3)所以我正在浏览由 API 3 过滤的开发参考站点,我看到了暂停,所以我想我会尝试sounds.pause(sound);
但它没有当我释放它时不要停止声音。(也许我只是用错了?)有谁知道一种对纸杯蛋糕友好的方式来停止这种声音?谢谢!
编辑:也试过sounds.stop(sound);
了,也没有用。
编码:
我的创建:
sounds = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
sound = sounds.load(this.getApplicationContext(), R.raw.red_long_one, 1);
然后这是我的触摸事件
@Override public boolean onTouch(View arg0, MotionEvent event) {
switch (event.getAction() ) {
case MotionEvent.ACTION_DOWN:
System.out.println("touch");
sounds.play(sound, 1, 1, 1, -1, 1);
break;
case MotionEvent.ACTION_UP:
System.out.println("up");
//autoPause does not work on anything lower than sdk8
sounds.autoPause();
break;
}
return false;
}
我不明白为什么sounds.stop(sound);
似乎不起作用,这似乎是,但我读过的任何文章都建议这样做
我认为值得注意的是,如果我使用sounds.stop(sound);
它一次就可以工作,然后在我放手后它不会停止。但第一次按下并发布它按预期工作。
现在,我知道在 andoird 网站上它说的是 streamID 而不是 soundID 但我不知道如何获取 streamID