【发布时间】:2015-08-24 15:16:03
【问题描述】:
我试图在不下载的情况下从 url 播放音乐,每件事都是写的,唯一的问题是我使用下面的代码来播放和暂停音乐,首先按下按钮音乐开始播放,然后再次按下它音乐暂停了,但是如果我再次按下按钮没有任何反应,它应该从暂停的地方播放音乐,但它没有,这是什么问题?
buttonPlayPause = (ImageView) findViewById(R.id.play);
buttonPlayPause.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (isPlaying) {
buttonPlayPause.setImageResource(R.drawable.play);
mediaPlayer.pause();
isPlaying = false;
} else {
buttonPlayPause.setImageResource(R.drawable.pause);
new Stream().execute();
}
}
});
private class Stream extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
try {
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
mediaFileLengthInMilliseconds = mediaPlayer.getDuration();
mediaPlayer.start();
animation.cancel();
isPlaying = true;
primarySeekBarProgressUpdater();
} catch (Exception e) {
return "Exception Caught";
}
return url;
}
@Override
protected void onPostExecute(String result) {
}
}
【问题讨论】:
-
附注:为什么要在 onClick(View v) 方法中检查
v.getId() == R.id.play?是不同的按钮调用这个方法吗? -
你说得对,我修好了
-
可能是因为你使用的是 prepare() 而不是 prepareAsync()
标签: android android-mediaplayer seekbar