首页  >  文章  >  如何在另一个音频开始时使音频停止(大量音频)

如何在另一个音频开始时使音频停止(大量音频)

PHPz
PHPz转载
2024-02-12 14:06:05526浏览

问题内容

我有 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中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除