Android:单击时按钮不会更改为暂停状态

时间:2014-04-25 09:04:55

标签: java android url android-emulator media-player

我为媒体播放器编码并正在播放歌曲。在前端只使用图像按钮并硬编码为播放按钮

当我再次点击时,它必须将图像更改为暂停状态但是我使用的按钮每次点击它时都会同时播放两首歌这是错误的

但我需要暂停这首歌,所以无论我使用了什么

mp.start();

将从网址开始播放音乐的功能我将代码添加为

if(!mp.isPlaying()){
mp.start();
buttonPlayPause.setBackgroundResource(R.drawable.pause);
}else {
mp.pause();
buttonPlayPause.setBackgroundResource(R.drawable.play);}

但是当我点击播放按钮时,它会再次开始播放,如果我再次点击该按钮,它会同时开始播放两次

请帮助我如何启动和暂停我在url中显示的mp3文件,如果我使用不同的功能,它不会阻止自己

项目的完整代码是

public class MainActivity5 extends Activity implements OnClickListener,
OnPreparedListener, OnErrorListener, OnCompletionListener {



MediaPlayer mp;
ProgressDialog pd;
Button bt;
ImageButton iv;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main5);
iv = (ImageButton)findViewById(R.id.play);
iv.setOnClickListener(this);}
@Override
public void onPrepared(MediaPlayer mp) 
 {
   Log.i("StreamAudioDemo", "prepare finished");
   //pd.setMessage("Playing.....");
   //mp.start();

   /*if(mp.isPlaying()== true)
   {
       mp.start();
       iv.setImageResource(R.drawable.pause);
   }
   else 
   {
       mp.pause();
       mp.release();
       iv.setImageResource(R.drawable.play);
   }*/

}
@Override
 public void onClick(View v) {

   try
    {
        pd = new ProgressDialog(this);
        pd.setMessage("Buffering.....");
        //pd.show();
        mp = new MediaPlayer();
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mp.setOnPreparedListener(this);
        mp.setOnErrorListener(this);
        mp.setDataSource("http://192.168.1.138/Android/music/vande.mp3");
        mp.prepareAsync();
        mp.setOnCompletionListener(this);
    }
    catch(Exception e)
    {
        Log.e("StreamAudioDemo", e.getMessage());
    }
}

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
  pd.dismiss();
  return false;
}

@Override
public void onCompletion(MediaPlayer mp) {
    pd.dismiss();
    Toast.makeText(getApplicationContext(), "Completed", Toast.LENGTH_LONG).show();     
}}

感谢您提前的帮助

我已经评论了上面的一些代码,我必须重新纠正它

2 个答案:

答案 0 :(得分:0)

你可以试试你的onclickListener,当这个播放器正在播放时,如果你想暂停它,你应该调用MediaPlayer.pause(),如果你想发布它的数据,你可以调用MediaPlayer.release( ),那么,你可以播放下一个音乐。

答案 1 :(得分:0)

使用此

public void onPrepared(MediaPlayer mp) 
 {
   Log.i("StreamAudioDemo", "prepare finished");
   //pd.setMessage("Playing.....");

// mp.start(); - this should be removed 
   if(mp.isPlaying()== true)
   {
     mp.pause();

       iv.setImageResource(R.drawable.pause);
   }
   else 
   {
      mp.start();
       mp.release();
       iv.setImageResource(R.drawable.play);
   }

}