在 activity 中选择要在另一个 activity 中播放的声音
Selecting a Sound in an activity to be played in another activity
我有这个想法,我不会编码,所以我在这里寻求帮助
我有两个活动,第一个:
Xml 文件:按钮
Java 文件:Button 的点击侦听器,用于使用来自 res/raw
的 SoundPool class 播放音效
--一切简单--
想要做的是创建第二个 activity,用户可以从单选按钮组中选择其他音效,如 Sound1 或 Sound2 等,以代替播放。
这是我的想法,所以请帮我编写代码,我已经卡住了 2 周了,我对下一步是什么一无所知。
SOS =)
您可以定义一个全局变量来播放音效:
int activeSoundEffectRawId = R.raw.defaultSound;
并使用您的 SoundPool 的 load
方法播放它。
要 select 要播放的声音,您可以在 xml 文件中添加另一个按钮,该按钮以 Activity2:
开头
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 开始 activity 结果(此数字肯定可以更改)。
在您的 Activity 2 中,您需要逻辑来 select 您的声音,例如 "OK" 按钮来保存 selection。该确定按钮会将 selected 声音移交给 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中设置selected声音:
@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");
}
}
我有这个想法,我不会编码,所以我在这里寻求帮助
我有两个活动,第一个: Xml 文件:按钮 Java 文件:Button 的点击侦听器,用于使用来自 res/raw
的 SoundPool class 播放音效--一切简单--
想要做的是创建第二个 activity,用户可以从单选按钮组中选择其他音效,如 Sound1 或 Sound2 等,以代替播放。
这是我的想法,所以请帮我编写代码,我已经卡住了 2 周了,我对下一步是什么一无所知。
SOS =)
您可以定义一个全局变量来播放音效:
int activeSoundEffectRawId = R.raw.defaultSound;
并使用您的 SoundPool 的 load
方法播放它。
要 select 要播放的声音,您可以在 xml 文件中添加另一个按钮,该按钮以 Activity2:
开头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 开始 activity 结果(此数字肯定可以更改)。
在您的 Activity 2 中,您需要逻辑来 select 您的声音,例如 "OK" 按钮来保存 selection。该确定按钮会将 selected 声音移交给 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中设置selected声音:
@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");
}
}