gpt4 book ai didi

android - 单击按钮时播放声音的最有效方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:28 24 4
gpt4 key购买 nike

现在我有两个按钮。每一个都需要产生不同的声音。 future 可能会有大约 8 个按钮,但目前只有两个。

public class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

final Button btnDrum1 = (Button) findViewById(R.id.btnDrum1);
btnDrum1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(this, R.raw.drum1);
mp.start();
mp.release();
}
});

final Button btnCym1 = (Button) findViewById(R.id.btnCym1);
btnCym1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(this, R.raw.cym1);
mp.start();
mp.release();
}
});

}
}

最初我没有 mp.release() 并且它可以正常播放声音,但最终应用程序会因内存不足而崩溃。现在使用 mp.release() 它不会崩溃,但有时它不会在点击时播放声音。

这是单击按钮时播放声音的最有效方式吗?是否可扩展?

最佳答案

我认为这是由于您在播放时释放了它。为每个声音制作一个全局 MediaPlayer 并反复使用它,在 Activity 关闭时释放(甚至可能在暂停时释放,如果声音文件很大则在恢复时重新加载)。另外,因为你会有很多按钮,你可以在你在 onCreate() 上实例化的所有按钮上有一个 onclicklistener:

private class MyMagicalOnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.button1:
//play sound 1
break;
case R.id.button2:
//play sound 2
break;
}
}
}

如果您不确定如何实现,请发表评论并告诉我 :)

编辑:根据请求,这里有一个简洁的实现,应该可以为您的应用创造奇迹。我做到了,所以 Activity 实现了 onclicklistener,我认为它更干净一些。

public class Bluarg extends Activity implements OnClickListener{

MediaPlayer mp1;
MediaPlayer mp2;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mp1 = MediaPlayer.create(this, R.raw.sound1);
mp2 = MediaPlayer.create(this, R.raw.sound2);

final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(this);

final Button button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);

}

@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.button1:
mp1.start();
break;
case R.id.button2:
mp2.start();
break;
}
}

@Override
protected void onDestroy() {
mp1.release();
mp2.release();
super.onDestroy();
}
}

关于android - 单击按钮时播放声音的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3203920/

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