Android SoundPool.stop似乎不起作用

Android SoundPool.stop似乎不起作用,第1张

概述我创建了一个类MySoundPool(我使用这个类作为sigelton,但不认为这是相关的,因为其他所有工作).我正在初始化SoundPool,一个HashMap,并获取AudioManager的上下文.此后我正在加载两个声音.MySoundpool由MySoundPool.playSound方法使用(intindex,floatrate)playSound剪辑率为0.5<=

我创建了一个类MySoundPool(我使用这个类作为sigelton,但不认为这是相关的,因为其他所有工作).我正在初始化SoundPool,一个HashMap,并获取AudioManager的上下文.此后我正在加载两个声音.
MySoundpool由MySoundPool.playSound方法使用(int index,float rate)
playSound剪辑率为0.5< = rate> = 2.0执行语句

float streamVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); streamVolume = streamVolume / mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, index, 0, rate);

到现在为止还挺好.一切正常.
不会发生在前一个声音仍在播放时调用playSound,我想在播放新声音之前停止播放.在上面的代码片段之前,我试过了

mSoundPool.stop(mSoundPoolMap.get(index));

mSoundPool.autopause();

没有成功.声音继续发挥到底.
任何意见将不胜感激

解决方法:

我假设您在MySoundPool类的构造函数中创建了一个新的SoundPool对象?

如果是这样,那么SoundPool的构造函数所采用的第一个参数是同时允许的流的数量.例如…

mSoundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);

这将允许一次播放10个声音,所以只需将10改为1即可.

编辑:
stop()方法将stream ID作为参数,该参数应该是play()方法返回的数字.您可以尝试设置一个等于play()返回的变量,然后在停止声音时使用该变量.

总结

以上是内存溢出为你收集整理的Android SoundPool.stop似乎不起作用全部内容,希望文章能够帮你解决Android SoundPool.stop似乎不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存