在第一个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 –