各項目に自分の音楽(RecyclerView)のリストを作成しました。最初に2つのボタンがあり、2番目のボタンは一時停止しますが、私は最初のものを止めたいと思っている間に2つの起動します。ここに私のアダプタ Mediaplayer RecyclerViewで複数のオーディオを再生しないようにする方法
public class ViewAudioListAdapter extends RecyclerView.Adapter<ViewAudioListAdapter.ViewHolder>{
private List<Audio> values;
private Context context;
private MediaPlayer mediaPlayer;
private boolean flage = true;
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView textViewName;
public ImageView ivPlay,ivStop;
public View layout;
public ViewHolder(View view) {
super(view);
this.textViewName = (TextView) view.findViewById(R.id.textViewName);
this.ivPlay = (ImageView) view.findViewById(R.id.ivPlay);
this.ivStop = (ImageView) view.findViewById(R.id.ivStop);
this.layout = view;
}
}
public void add(int position, Audio audio){
values.add(position, audio);
notifyItemInserted(position);
}
public void remove(int position){
values.remove(position);
notifyItemRemoved(position);
}
public ViewAudioListAdapter(List<Audio> myDataset, Context context) {
values = myDataset;
this.context=context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View v = inflater.inflate(R.layout.view_audio_item, parent, false);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
// set the view's size, margins, paddings and layout parameters
ViewHolder vh = new ViewHolder(v);
return vh; }
@Override
public void onBindViewHolder(final ViewAudioListAdapter.ViewHolder holder, int position) {
final Audio audio = new Audio(values.get(position));
final String name = audio.getName();
holder.textViewName.setText(name);
holder.ivPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (flage){
mediaPlayer = MediaPlayer.create(context , Uri.parse(url));
flage = false ;
}
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
holder.ivPlay.setImageResource(R.drawable.icons_play);
}else{
mediaPlayer.start();
holder.ivPlay.setImageResource(R.drawable.icons_pause);
}
}
});
holder.ivStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!flage){
mediaPlayer.stop();
mediaPlayer.release();
flage = true;
}
holder.ivPlay.setImageResource(R.drawable.icons_play);
}
});
}
@Override
public int getItemCount() {
return values.size();
}}
はあなたに
チェックこのhttps://stackoverflow.com/questions/46040158/playing-and-releasing-audio-in-recyclerview –