У меня есть просмотрщик с изображением. когда я нажимаю на изображение, он должен проверить наличие музыки в папке, если она не найдена, загрузить ее и, если найден, воспроизвести ее. когда я хочу установить музыку на медиаплеере, выдает ошибку
java.lang.IllegalStateException at android.media.MediaPlayer._prepare (собственный метод)
это onBindViewHolder в адаптере утилита просмотра:
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
final musicFragment_dataModel list_item = list_Items.get(position);
holder.txtSinger.setText(list_item.getSinger());
holder.txtDescription.setText(list_item.getMaddahi_text());
final String songname = list_item.getSongName();
final File musicFile = new File(android.os.Environment.getExternalStorageDirectory(), "meraat_music/" + songname + ".mp3");
if (!musicFile.exists()) {
holder.imageView.setBackground(download);
} else {
boolean result = list_item.isFlag();
if (!result) {
holder.imageView.setBackground(play);
playing = false;
} else {
holder.imageView.setBackground(pause);
playing = true;
}
}
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myMediaPlayer = new MediaPlayer();
songUri = list_item.getAudiolink();
if (holder.imageView.getBackground() == play) {
if (flagNumber != -1) {
list_Items.get(flagNumber).setFlag(false);
notifyItemChanged(flagNumber);
}
flagNumber = holder.getAdapterPosition();
// songUri = list_item.getAudiolink();
if (myMediaPlayer != null) {
myMediaPlayer.stop();
myMediaPlayer.release();
}
// Uri uri = Uri.parse(musicFile.getPath());
try {
myMediaPlayer.setDataSource(context,Uri.fromFile(musicFile));
} catch (IOException e) {
e.printStackTrace();
}
//Toast.makeText(context,info,Toast.LENGTH_LONG).show();
playerService2.play();
holder.imageView.setBackground(pause);
list_item.setFlag(true);
playing = true;
} else if (holder.imageView.getBackground() == pause) {
playerService2.pause();
holder.imageView.setBackground(play);
list_item.setFlag(false);
playing = false;
} else if (!musicFile.exists()) {
new DownloadFileFromUrl(context, musicFile).execute(songUri);
}
}
});
}