我有 30-31 个按钮,我希望一次播放一个按钮,所以如果我单击一个按钮,它就会播放,然后当我单击另一个按钮时,无论是哪个按钮,它都会停止,这是代码示例基本上都是这样并重复,但只是数字发生变化,因此 1,2,3,4 等等:
public void Button1Text(View view) { Media1 = MediaPlayer.create(QuranJ30MA.this, R.raw.hannaba); Media1.start(); } public void Button1Text2(View view) { Button1p = MediaPlayer.create(QuranJ30MA.this, R.raw.mannaba); Button1p.start(); }
我确实尝试看看其他人也想做同样的事情,但由于我对java不太擅长,所以我不明白如何将它应用到我的机器上,如果要求不太多,我只是想解释一下它是如何工作的学习一下,谢谢:)
您永远不应该创建多个 mediaplayer,它们是重量级对象并占用大量资源。相反,制作一个媒体播放器,并使用 setdatasource 更改其设置播放的声音(当然,您需要首先停止原始声音)。
接下来要改变的是构建数据。创建 ids 到声音的映射:
map<int, int> sounds = new hashmap(); sounds.put(button1id, r.raw.hannaba); sounds.put(button2id, r.raw.mannaba); ...
然后就可以拥有单击功能了:
public void buttonClick(View view) { mediaPlayer.stop() mediaPlayer.setDataSource(sounds.get(view.getId()) mediaPlayer.start() }
将其设置为您想要执行的所有按钮的 onclicklistener,并且只需编写一次。
以上是如何在另一个音频开始时使音频停止(大量音频)的详细内容。更多信息请关注PHP中文网其他相关文章!