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