在第一個OnCreate中,我有一個button_stop SetImageResource,它在按下時將圖標更改爲靜音圖標,但在我的代碼中,我想輸入一個函數,該函數說明mp.start();做另一個SetImageResource使同一個按鈕顯示一個揚聲器而不是一個靜音圖標。On mp.start();怎麼做setImageResource?
如何使它在mp.start();這個函數被調用?
button_stop.setImageResource(R.drawable.ic_action_volume_on);
我想要做的是在聲音按鈕(button_1,button_2)被擠壓,button_stop顯示揚聲器圖標。但是,當按下button_stop時,它會顯示靜音圖標(並釋放MediaPlayer)。
當按下button_stop按鈕時,我可以使其釋放MediaPlayer並將圖像更改爲靜音圖標,但是,在按下聲音按鈕(button_1)後打開MediaPlayer後無法使其顯示揚聲器圖標等等)
這是我目前的代碼。我嘗試在onClick中輸入SetImageResource,但它會停止正確調用MediaPlayer。
import android.app.Activity;
import android.app.PendingIntent;
import android.app.TaskStackBuilder;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;
/**
* @author Prabu
*
*/
public class MainActivity extends Activity implements OnClickListener{
private MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
Button button1=(Button)findViewById(R.id.button_1);
Button button2=(Button)findViewById(R.id.button_2);
final ImageView button_stop=(ImageView)findViewById(R.id.button_stop);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button_stop.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(null!=mp){
mp.release();
button_stop.setImageResource(R.drawable.ic_action_volume_muted);
}
}});
}
public void onClick(View v) {
int resId;
switch (v.getId()) {
case R.id.button_1:
resId = R.raw.a;
break;
case R.id.button_2:
resId = R.raw.b;
break;
default:
resId = R.raw.a;
break;
}
// Release any resources from previous MediaPlayer
if (mp != null) {
mp.release();
}
// Create a new MediaPlayer to play this sound
mp = MediaPlayer.create(this, resId);
mp.setLooping(true);
mp.start();
}{
}
@Override
protected void onDestroy() {
if(null!=mp){
mp.release();
}
super.onDestroy();
}}
你的問題是什麼?這裏 –
在當前選擇的代碼中,我沒有進入將ImageResource設置爲spesker圖標的功能,因爲我無法將它放置在任何可用的位置。我想知道是否有人可以在代碼中指出它應該去哪裏,以便它能夠工作。在第一個OnCreate中,我有一個button_stop SetImageResource,它可以在按下時將圖標更改爲靜音圖標,但在我的代碼中,我想輸入一個函數,該函數在mp.start();做另一個SetImageResource使同一個按鈕顯示一個揚聲器而不是一個靜音圖標。 – rossd
把這個解釋放到你的question.plz –