Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓:当我点击时,按钮并没有变为暂停状态_Java_Android_Url_Android Emulator_Media Player - Fatal编程技术网

Java 安卓:当我点击时,按钮并没有变为暂停状态

Java 安卓:当我点击时,按钮并没有变为暂停状态,java,android,url,android-emulator,media-player,Java,Android,Url,Android Emulator,Media Player,我已经为媒体播放器编码,它正在播放歌曲。在前端,仅使用图像按钮,并硬编码为播放按钮 当我再次单击时,它必须将图像更改为暂停状态,但每当我单击时,我使用的按钮会同时播放歌曲两次,这是错误的 但我需要暂停这首歌,无论我在哪里 mp.start(); 函数将开始播放我添加的url中的音乐代码 if(!mp.isPlaying()){ mp.start(); buttonPlayPause.setBackgroundResource(R.drawable.pause); }else { mp.paus

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

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

但我需要暂停这首歌,无论我在哪里

mp.start();
函数将开始播放我添加的url中的音乐代码

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();     
}}
提前谢谢你的帮助


我已经对上面的一些代码进行了注释,我必须重新更正它

您可以在onclickListener上试一试,当这个播放器播放时,如果您想暂停它,您应该调用MediaPlayer.pause(),如果您想释放它的数据,您可以调用MediaPlayer.release(),然后,您可以播放下一首音乐

用这个

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);
   }

}

你的代码中的
mp
mediaPlayer
是什么,是这里给出的打字错误还是你正在使用的?如果(mp.isplay()){?如果
buttonlaypause
ImageButton
,那么是的-你应该使用
setImageResource
。使用
if(mp.isplay()==true)
如果(!mp.isPlaying())您可以在媒体播放器上发布完整的代码,而不是此
当我在上面的代码@tagmic中使用release()时,这可以帮助您吗?k我会尝试在一分钟内通知您@Sree