【发布时间】:2017-12-06 09:32:56
【问题描述】:
我在每个项目中建立了我的音乐列表(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();
}}
谢谢
【问题讨论】:
标签: android android-mediaplayer android-adapter android-recyclerview