У меня есть приложение, из которого воспроизводится радиопоток, использующий службу для медиаплеера, которое работает следующим образом: при запуске оно вызывает службу, и радио начинает воспроизводиться, на главном экране у меня есть воспроизведение икнопка остановки, поэтому, когда приложение запускается, так как радио запускается сразу же, я установил кнопку воспроизведения GONE и кнопку Stop VISIBLE.поэтому, если я нажимаю кнопку «Стоп», он останавливает службу и делает кнопку воспроизведения «ВИДИМОЙ» и кнопку «Стоп» исчезающими, и наоборот.И до сих пор, если служба обнаруживает ошибку, она отправляет Toast плюс обновление на панель уведомлений, но кнопка «Стоп» продолжает оставаться ВИДИМОЙ, а кнопка «Воспроизведение» по-прежнему УДАЛЕНА, поэтому мой вопрос заключается в том, как я могу сделать свою службу при обнаруженииошибка сделать кнопки поменять?так что я мог бы иметь кнопку Play VISIBLE и Stop GONE, чтобы повторить попытку.Вот как я кодирую кнопки в OnCreate в моей основной деятельности:
Button playBtn = (Button) findViewById(R.id.buttonPlay);
playBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
View b = findViewById(R.id.buttonPlay);
b.setVisibility(View.GONE);
View c = findViewById(R.id.buttonStopPlay);
c.setVisibility(View.VISIBLE);
TextView textRadioName = (TextView) findViewById(R.id.textView);
textRadioName.setText("You are listening Radio!");
startService(new Intent("PLAY"));
start();
}});
Button stopBtn = (Button) findViewById(R.id.buttonStopPlay);
stopBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
View b = findViewById(R.id.buttonStopPlay);
b.setVisibility(View.GONE);
View c = findViewById(R.id.buttonPlay);
c.setVisibility(View.VISIBLE);
TextView textRadioName = (TextView) findViewById(R.id.textView);
textRadioName.setText("Listen Radio Here");
pause();
}});
, и вот как я кодирую ошибку в моей службе MediaPlayer:
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Toast.makeText(this, "Radio not connected!...." , Toast.LENGTH_LONG) .show();
StreamError = true;
updateNotification("Radio not connected!");
return false;
}
Мне нравится, какэто работает, но выглядит странно, если у меня кнопка останова VISIBLE, а не кнопка воспроизведения, поэтому, если я нажму на кнопку остановки, это заставит мою игру появиться, и тогда я смогу попробовать снова!но разве приложение не должно работать правильно?Спасибо за ваше время.Я надеюсь, что кто-то может показать мне путь.