你可以定义一个全局变量来播放音效:
int activeSoundEffectRawId = R.raw.defaultSound;
然后使用 SoundPool 的 load 方法播放它。
要选择要播放的声音,您可以在启动 Activity2 的 xml 文件中添加另一个按钮:
Button btnSelectSound = (Button) findViewById (R.id.button2);
btnSelectSound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivityForResult(new Intent(Activity1.this, Activity2.class), 1000);
}
});
请务必在此处使用请求代码 1000 启动结果活动(此数字肯定可以更改)。
在您的活动 2 中,您需要选择声音的逻辑,例如“确定”按钮来保存选择。该确定按钮会将选定的声音移交给 Activity1:
Button btnOk = (Button) findViewById (R.id.ok);
btnOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent returnIntent = new Intent();
returnIntent.putExtra("soundRawId", selectedSoundRawId /* <- replace this with the selected sound, like R.raw.yourSound */);
setResult(Activity.RESULT_OK,returnIntent);
finish();
}
});
之后就可以在Activity1中设置选中的声音了:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1000 && resultCode == Activity.RESULT_OK) {
selectedSoundRawId = data.getIntExtra("soundRawId");
}
}