Есть приложение, которое воспроизводит через интернет радио потоки. Присутствуют кнопки, чтобы останавливать проигрывание и продолжать его.
Если слушать радио в наушниках, и вынуть их, то радио продолжает играть.
Нужно сделать так, чтобы при отключении наушников ставилась пауза. Я новичок в программировании, и совсем не пойму как это реализовать.
Буду очень сильно благодарен за подробный ответ на мой вопрос. Мне подсказали, что для этого есть специальное событие, о котором уведомляет система. "Поймать" его можно с помощью так называемых Broadcast Reciever'ов. Вот код, который показывает, как узнать о подключении/отключении наушников:
private static final String TAG = "MainActivity";
private MusicIntentReceiver myReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myReceiver = new MusicIntentReceiver();
}
@Override
public void onResume(){
IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
registerReceiver(myReceiver, filter);
super.onResume();
}
private class MusicIntentReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
int state = intent.getIntExtra("state", -1);
switch (state) {
case 0: Log.d(TAG, "Наушники отключены"); break;
case 1: Log.d(TAG, "Наушники подключены"); break;
default: Log.d(TAG, "Неизвестное состояние");
}
}
}
}
@Override
public void onPause() {
unregisterReceiver(myReceiver);
super.onPause();
}
}
Что с ним делать дальше я не совсем понял. Куда вставить и что поменять/создать?
Данный код описывает MainActivity
и подключение reciever'а
Больше всего вас должен интересовать класс:
private class MusicIntentReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
int state = intent.getIntExtra("state", -1);
switch (state) {
case 0: Log.d(TAG, "Наушники отключены"); break;
case 1: Log.d(TAG, "Наушники подключены"); break;
default: Log.d(TAG, "Неизвестное состояние");
}
}
}
}
а в частности строка case 0: Log.d(TAG, "Наушники отключены"); break;
Вставьте код, завершения проигрывания, в неё
case 0:
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
}
break;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Надо напечатать вот так пирамидукак сделать, чтобы она вот так была "отцентрована" по правому краю? Пробелами? Размер пирамиды задается с клавиатуры
Имеется прямоугольное отверстие размерами a и b, определить, можно ли его полностью закрыть круглой картонкой радиусом r