android–SoundPool停止功能不停止

android–SoundPool停止功能不停止,第1张

概述我正在制作一个应用程序,您可以在其中选择1到4种不同的声音,并在同一时间播放它们.一切正常,直到我想停止声音,功能停止只能同时为一个声音,这里是代码(仅适用于soundpool)sound=newSoundPool(1,AudioManager.STREAM_MUSIC,0);s1=sound.load(Main.this,R.raw.mo

我正在制作一个应用程序,您可以在其中选择1到4种不同的声音,并在同一时间播放它们.一切正常,直到我想停止声音,功能停止只能同时为一个声音,这里是代码(仅适用于soundpool)

sound = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);        s1 = sound.load(Main.this, R.raw.mosq1, 1);        s2 = sound.load(Main.this, R.raw.mosq2, 1);        s3 = sound.load(Main.this, R.raw.mosq3, 1);        s4 = sound.load(Main.this, R.raw.mosq4, 1);....        case R.ID.play:            if (l1==true){sound.play(s1, 1, 1, 0, rep, 1); if(vib==true) wibracja.vibrate(4500);}            if (l2==true){sound.play(s2, 1, 1, 0, rep, 1); if(vib==true) wibracja.vibrate(6500);}            if (l3==true){sound.play(s3, 1, 1, 0, rep, 1); if(vib==true) wibracja.vibrate(2500);}            if (l4==true){sound.play(s4, 1, 1, 0, rep, 1); if(vib==true) wibracja.vibrate(4500);}            break;        case R.ID.stop:            sound.stop(s1);            sound.stop(s2);            sound.stop(s3);            sound.stop(s4);            wibracja.cancel();            break;

如何正确使用停止功能?感谢帮助

解决方法:

对于那些使用soundpool的人来说,这是一个常见的问题
第一次.如果你仔细查看soundpool的文档,play会使用参数“soundID”,而stop会使用参数“streamID”.很容易忽略这一点,并使用load命令返回的soundID作为代码.我甚至看过androID教程示例搞错了.而是使用这些命令:

s1 = sound.load(Main.this, R.raw.mosq1, 1);  if (l1==true){p1=sound.play(s1, 1, 1, 0, rep, 1);     sound.stop(p1);// NOT s1
总结

以上是内存溢出为你收集整理的android – SoundPool停止功能不停止全部内容,希望文章能够帮你解决android – SoundPool停止功能不停止所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存