正确播放/停止媒体播放器android

时间:2014-11-06 15:54:37

标签: android listview android-mediaplayer

我有一个列表视图和MediaPlayer,用于根据行位置(如音板)播放声音。问题是,当播放声音,并且单击另一行(列表视图中的不同位置)时,我想停止该声音并开始新声音。这是我的代码,它在同一行的播放/停止时工作正常,但在不同的行上没有。我该如何解决这个问题?

public void playSound(int pos){


        if(isPlaying && mMediaPlayer.isPlaying()){  
            mMediaPlayer.stop();  
            mMediaPlayer.release();
            mMediaPlayer = null;
            play.setImageDrawable(context.getResources().getDrawable(R.drawable.play));
            play.invalidate();
            isPlaying = false;
    }

    else{
        mMediaPlayer = MediaPlayer.create(context, songs[pos]);
        mMediaPlayer.start();
        isPlaying = true;
        play.setImageDrawable(context.getResources().getDrawable(R.drawable.stop));
        play.invalidate();

        mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {

            public void onCompletion(MediaPlayer mp) {
                isPlaying = false;
                play.setImageDrawable(context.getResources().getDrawable(R.drawable.play));
                play.invalidate();
            }
        });

      }
    }

这是onClick()方法:

@Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        View vi = convertView;

vi.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                play = (ImageButton) v.findViewById(R.id.imagePlay);
                playSound(position);

                }
            });

0 个答案:

没有答案