我需要实现以下功能:点击按钮1,弹出选择声音的弹框,选择声音后点击按钮2会播放选中的声音
时间: 2024-03-03 10:46:55 浏览: 136
JS点击某个图标或按钮弹出文件选择框的实现代码
好的,您可以按照以下步骤实现:
1. 在界面中添加一个按钮1和一个按钮2。
2. 给按钮1添加一个点击事件,在点击事件中弹出选择声音的弹框,让用户选择需要播放的声音文件。
3. 在选择声音后,将选择的声音文件路径存储到一个变量中。
4. 给按钮2添加一个点击事件,在点击事件中播放步骤3中选择的声音文件。
下面是一个简单的实现示例,可供参考:
```java
public class MainActivity extends AppCompatActivity {
String selectedSoundFilePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = findViewById(R.id.btn1);
Button btn2 = findViewById(R.id.btn2);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 弹出选择声音的弹框,让用户选择需要播放的声音文件
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
startActivityForResult(intent, 1);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 播放步骤3中选择的声音文件
if (selectedSoundFilePath != null) {
MediaPlayer mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(selectedSoundFilePath);
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 选择声音文件后的回调方法
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
Uri uri = data.getData();
selectedSoundFilePath = uri.getPath();
}
}
}
```
在上面的代码中,我们在按钮1的点击事件中打开了一个选择声音文件的界面,并在选择后将文件路径存储到了 `selectedSoundFilePath` 变量中。在按钮2的点击事件中,我们使用 `MediaPlayer` 播放了步骤3中选择的声音文件。
阅读全文