Android Stop Background Music

РЕДАКТИРОВАТЬ - НАЙДЕНО ЛЕГКОЕ РЕШЕНИЕ ИЗ 5-10 СТРОК !!! СМОТРИ МОЙ СОБСТВЕННЫЙ ОТВЕТ НИЖЕ !!! УРА!!!!!!!!!

Я искал 5 часов, десятки сообщений ТАК, ответов нет, и это кажется самой простой и очевидной долбанной вещью !!!

РЕДАКТИРОВАТЬ - кстати, это НЕ приложение для музыкального плеера, это просто приложение для просмотра изображений и текста, открывает несколько действий, таких как меню и о нем, просмотр различных типов изображений и т. Д. Я просто хочу воспроизвести простую фоновую музыку, пока смотрю через изображения и текст, почему это так сложно?

еще одно РЕДАКТИРОВАНИЕ - кажется, главный вопрос действительно таков: "ПОЧЕМУ НАЖАТИЕ КНОПКИ HOME НЕ ВЫЗЫВАЕТ onPause или onStop ???" -так я могу узнать, когда остановить медиаплеер? и как игры, которые я загружаю на рынке, достигают этого ???

запускается домашнее действие

затем

запускается медиаплеер:

player = MediaPlayer.create(this, R.raw.idil);
player.setLooping(true);
player.setVolume(100,100);
player.start();

Игрок объявлен вне onCreate

MediaPlayer player;

Когда другие действия открываются, фоновая музыка не прерывается, и это ХОРОШО, это то, что я хочу.

Теперь, когда я закончил работу с моим очень простым приложением (которое показывает только некоторые картинки и тексты в различных действиях), я либо нажимаю НАЗАД несколько раз, чтобы перейти к домашнему / исходному действию, а затем еще раз, чтобы «выйти», ИЛИ я просто нажимаю «домой», чтобы «выйти», потому что я ЗАВЕРШЕН с этим приложением и мне больше не нужно слушать эту музыку.


ВАРИАНТ 1

Вызвать игрока.stop (); в переопределении onPause , это не то, что я хочу, потому что фоновая музыка останавливается, когда я выхожу из дома для других действий, таких как 'меню' и 'о ', Я также не знаю, что использовать для паузы и возобновления при открытии новых занятий, потому что я не хочу, чтобы красивая фоновая музыка «пропускалась» или прерывалась.


ВАРИАНТ 2

@Override
    protected void onPause() {
        super.onPause();
        if (this.isFinishing()){
            player.stop();
        }
    }

Это лучше, потому что фоновая музыка не прерывается между занятиями, и когда я нажимаю НАЗАД из своего домашнего занятия, музыка прекращается, и я могу продолжать пользоваться своим забавным телефоном на Android в тишине и покое, , но проблема в том, что при нажатии кнопки HOME для «выхода» из моего приложения эта надоедливая фоновая музыка продолжает воспроизводиться.


ODDLY

@Override
protected void onStop() {
        super.onStop();
        if (this.isFinishing()){
            player.stop();
        }
    }

Действует так же, как onPause (и я понимаю реальные различия)

РЕДАКТИРОВАТЬ - ТАКЖЕ, похоже, не имеет значения, если player.stop (); находится выше или ниже super.onStop (); но это влияет на то, что я в любом случае не вижу, по-прежнему нет РЕШЕНИЯ: (

ooooo

ooooo

EDIT- ДРУГОЙ ВАРИАНТ- НО НЕ РАБОТАЕТ

public void onUserLeaveHint() {
    player.stop();
    super.onUserLeaveHint();
}

это останавливает музыку, когда я нажимаю HOME, но также останавливает его, когда я начинаю новую деятельность: (

РЕДАКТИРОВАТЬ - ОЧЕНЬ ОБЫЧНАЯ РАБОТА ВОКРУГ, Я ВИДЕЛ НЕСКОЛЬКО МЕСТ, но, кажется, нелепо делать:

необходимо вести подсчет количества операций, которые были открыты и закрыты (onResume и onPause, вероятно, были бы лучше всего, но это не имеет значения), и когда это количество достигнет 0, остановите фоновую музыку.ДА, это довольно просто, но почему я должен делать это программно, на самом деле САМЫЙ БОЛЬШОЙ ВОПРОС ДЛЯ ЭТОГО ЗАПИСИ:

ПОЧЕМУ НАЖАТИЕ КНОПКИ HOME НЕ ВЫЗЫВАЕТ onPause или onStop ???

Чтобы вставить его в onDestroy не вариант, потому что onDestroy вызывается только тогда, когда системе не хватает памяти, или вы принудительно закрываете приложение, и это хорошо задокументировано.

Переопределение кнопки HOME также не является вариантом, поскольку я читал, что это «невозможно», и я читал, что это «крайне неодобрительно», в любом случае я избегаю этого.

Я не вижу необходимости в создании СЛУЖБЫ, и даже если бы я это сделал, когда бы я остановил службу, похоже, у меня была бы та же проблема.

ТЕПЕРЬ ЭТО ТО, что меня совершенно взорвало, каждая игра и каждое приложение, которое я загрузил с Android Market, имеют очень красивую фоновую музыку, и когда я нажимаю BACK или HOME, потому что я закончил играть в эту прекрасную игру , музыка останавливается , не продолжая играть в фоновом режиме.

Я очень расстроен и чувствую, что мне не хватает чего-то очень простого, потому что это одна из самых основных проблем жизненного цикла любого приложения.

Я потратил месяц на чтение каждой страницы сайта developer.android.com, включая Руководство разработчика, учебные пособия, примеры проектов, изучение справочного раздела, а также 5 часов поисков в Google по этой теме.

Я также не понимаю, почему 6 или 7 потоков SO с точной той же проблемой, не получили ответ, каждое загружаемое приложение на рынке перестает воспроизводить свою музыку ( если это не проигрыватель фоновой музыки), когда вы нажимаете HOME или BACK или что-то еще, чтобы «выйти» из приложения, чтобы сделать что-то еще на своем телефоне.

Что мне не хватает?

26
задан Matthieu Brucher 30 December 2018 в 20:12
поделиться