![](/img/trans.png)
[英]Prevent an android activity to go pause state when HOME button is pressed
[英]Android: button is not changing to pause state when i click
我已經為媒體播放器編碼,並且正在播放歌曲。在前端,僅使用圖像按鈕並將其硬編碼為播放按鈕
當我再次單擊時,它必須將圖像更改為暫停狀態,但是每當我單擊它時,我使用的按鈕就會同時播放歌曲兩次,這是錯誤的
但是我需要暫停歌曲,所以無論我在哪里使用
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();
}}
謝謝你的幫助
我已經在上面注釋了一些代碼,我必須重新更正它
您可以在您的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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.