gpt4 book ai didi

android - 如何停止通过 Soundpool 播放声音?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:38 26 4
gpt4 key购买 nike

请看一下这些代码:

private SoundPool soundPool;
private int soundID;

soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
soundID = soundPool.load(this, R.raw.batimanbailedosenxutos, 1);

当我按下按钮时:

soundPool.play(soundID, volume, volume, 1, 0, 1f);

如果我同时按下这个按钮两次,它会一起播放声音,如果用户在播放时按下按钮,我想停止声音并再次播放

我试着放一个

soundPool.stop(soundID); 

在 soundPool.play 之前,但我不知道为什么它只在歌曲播放 1 次时起作用,你们知道为什么它只在 1 次时起作用吗?我该如何解决这个问题?谢谢

最佳答案

stop() 方法获取当前播放流的流 ID,而不是您加载的声音 ID。所以像这样:

int streamId = soundPool.play(soundID, volume, volume, 1, 0, 1f);

soudPool.stop(streamId);
streamId = soundPool.play(soundID, volume, volume, 1, 0, 1f);

将停止当前播放的轨道并开始另一个轨道。第二种选择是限制 SoundPool 允许的流数量。如果您使用值为 1 的 maxStreams 实例化您的 SoundPool,那么当您尝试启动另一个时,任何当前播放的声音都将停止,这可能会更干净地实现您想要的行为。

关于android - 如何停止通过 Soundpool 播放声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11694110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com