如何将播放器设置为自动连续播放

时间:2020-03-14 23:28:35

标签: java android

我制作了一个listview音乐播放器。它可以播放,但是我目前遇到两个问题。 在列表视图项(1)的第一行上,当您单击播放时,它将开始播放;当您从列表视图项(2)单击播放时,列表视图项(1)不会停止,从而允许项(2)开始重新。请提供修复解决方案。

CustomMusicAdapter.java

public class CustomMusicAdapter extends BaseAdapter {

    private Context context;
    private int layout;
    private ArrayList<Music> arrayList;
    private MediaPlayer player;
    private Boolean flag = true;

    public CustomMusicAdapter(Context context, int layout, ArrayList<Music> arrayList) {
        this.context = context;
        this.layout = layout;
        this.arrayList = arrayList;
    }

    @Override
    public int getCount() {
        return arrayList.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    private class ViewHolder {
        TextView txtName, txtSinger;
        ImageView ivPlay, ivStop, ivPause;

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final ViewHolder viewHolder;
        if (convertView == null){
            viewHolder = new ViewHolder();
            LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);

            convertView = layoutInflater.inflate(layout, null);
            viewHolder.txtName = (TextView) convertView.findViewById(R.id.textName);
            viewHolder.txtSinger = (TextView) convertView.findViewById(R.id.txtSinger);
            viewHolder.ivPlay = (ImageView) convertView.findViewById(R.id.ivPlay);
            viewHolder.ivStop = (ImageView) convertView.findViewById(R.id.ivStop);


            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        final Music music = arrayList.get(position);

        viewHolder.txtName.setText(music.getName());
        viewHolder.txtSinger.setText(music.getSinger());

        //Play Music Setup
        viewHolder.ivPlay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (flag){
                    player = MediaPlayer.create(context, music.getSong());
                    Toast.makeText(context, "Hymn Tune Playing", Toast.LENGTH_SHORT).show();
                    flag = false;

                }
                if (player.isPlaying()){
                player.pause();
                viewHolder.ivPlay.setImageResource(R.drawable.ic_play);
                } else {
                    player.start();
                    viewHolder.ivPlay.setImageResource(R.drawable.ic_pause);
                }
            }
        });

        // stop player
        viewHolder.ivStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!flag) {
                    player.stop();
                    player.release();
                    flag = true;
                }
                viewHolder.ivPlay.setImageResource(R.drawable.ic_play);
            }
        });


        return convertView;
    }
}

Custom_music_row

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/ivMusic"
        android:layout_width="44dp"
        android:layout_height="50dp"
        android:layout_alignParentTop="true"
        android:src="@drawable/ic_lmusic" />

    <TextView
        android:id="@+id/textName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginStart="48dp"
        android:text="Song List"
        android:textColor="#16c15b"
        android:textSize="22sp"
        android:layout_marginLeft="48dp" />

    <TextView
        android:id="@+id/txtSinger"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textName"
        android:layout_below="@+id/seekBar1"
        android:text="Singer"
        android:textColor="#645506"
        android:textSize="18sp"
        android:layout_alignLeft="@+id/textName" />

    <ImageView
        android:id="@+id/ivPlay"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_toLeftOf="@id/ivStop"
        android:layout_marginRight="20dp"
        android:src="@drawable/ic_play"/>
    <ImageView
        android:id="@+id/ivStop"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:src="@drawable/ic_stop"
        android:layout_alignParentRight="true"/>

    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/ivStop"
        android:layout_alignParentRight="true"
        android:background="#565858"
        android:indeterminate="false" />


</RelativeLayout>

0 个答案:

没有答案