当我单击图标时,我正在回收器视图中播放音频,这是我的代码:
//Recyclerview onClickListener holder.icon_audio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String filename= String.valueOf(model.getWordA()); Toast.makeText(view.getContext(), filename, Toast.LENGTH_SHORT).show();
MediaPlayer mediaPlayer = MediaPlayer.create(view.getContext(), R.raw.file);
mediaPlayer.start(); //mediaPlayer.release();
}});
一切都很好,只需要使用我从模型获得的变量播放音频..
如何用
R.raw.file
中的文件替换文件名字符串
请确保文件操作发生在 IO 线程上,因为它可能会消耗大量时间。
如果对你有帮助就点个赞吧。
InputStream is = null;
FileOutputStream out = null;
Context context = view.getContext();
try {
File tempFile = new File(context.getFilesDir(), "your_File_name");
if (tempFile.exists()){
tempFile.delete();
}
is = context.getResources().openRawResource(R.raw.file);
out = new FileOutputStream(tempFile);
copy(is, out);
MediaPlayer mediaPlayer = MediaPlayer.create(this, Uri.fromFile(tempFile));
mediaPlayer.start();
} catch (Exception e) {
//Log
} finally {
if (is != null) {
try {
is.close();
} catch (Exception e) {
//Log
}
}
if (out != null) {
try {
is.close();
} catch (Exception e) {
//Log
}
}
}
private void copy(final InputStream in, final OutputStream out)
throws IOException {
final byte[] b = new byte[8192];
for (int r; (r = in.read(b)) != -1; ) {
out.write(b, 0, r);
}
}