【发布时间】:2014-04-25 09:04:55
【问题描述】:
我已经为媒体播放器编码,它正在播放歌曲。在前端仅使用图像按钮并将其硬编码为播放按钮
当我再次点击时,它必须将图像更改为暂停状态,但我使用的按钮在我点击它时同时播放歌曲两次,这是错误的
但我需要暂停这首歌,所以无论我在哪里使用
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();
}}
提前感谢您的帮助
我在上面注释了一些代码,我必须重新更正它
【问题讨论】:
-
您的代码中的
mp和mediaPlayer是什么,是错字还是您在此处使用的?? -
不应该是
if (mp.isPlaying()) {吗? -
如果
buttonPlayPause是ImageButton,那么是的——你应该使用setImageResource。 -
使用
if(mp.isPlaying()== true)而不是这个if(!mp.isPlaying()) -
你能把你的完整代码发布到媒体播放器上吗
标签: java android url android-emulator media-player