продолжить медиаплеер во фрагменте (воспроизведение песни) из основного действия, даже при переходе на другую активность

#java #android #android-fragments

#java #Android #android-фрагменты

Вопрос:

У меня есть пользовательский интерфейс медиаплеера во фрагменте основного действия, который воспроизводит все песни из эмулятора. Под этим фрагментом у меня есть список плейлистов. Я могу щелкнуть по любому названию списка воспроизведения, и откроется второе действие с названиями песен в этом списке воспроизведения. Я хочу, чтобы после перехода к новому действию я все еще мог видеть тот же фрагмент из основного действия, воспроизводящий песню с названием и именем исполнителя. Также я должен поддерживать текущее состояние проигрывателя, например, прогресс на панели поиска, независимо от того, выполняю ли я переход между несколькими действиями. Можно ли этого достичь без необходимости создавать новый фрагмент (и, следовательно, обмениваться данными «фрагмент к фрагменту») во втором действии и вместо этого загружать фрагмент из основного действия как есть? Если во втором действии необходимо создать новый фрагмент, как мне передать детали песни, такие как обложка альбома, название, исполнитель и т.д., Из первого фрагмента во второй фрагмент?

Комментарии:

1. Вы когда-нибудь пробовали минимизировать фрагмент в основном действии?, просто попробуйте!

2. Сделайте то, что делает большинство проигрывателей, создайте проигрыватель в службе переднего плана (уведомление), затем переключение между различными действиями не затрагивает службу. Затем вы можете обновить свой пользовательский интерфейс из сервиса намеренно.

3. Но могут ли элементы пользовательского интерфейса, такие как воспроизведение, кнопки «Далее» и обложка альбома, имя исполнителя и т.д., Также быть размещены на переднем плане сервиса. У меня есть класс обслуживания для воспроизведения песни в фоновом режиме. Должен ли я поместить пользовательский интерфейс в этот класс обслуживания. Также я должен поддерживать текущее состояние проигрывателя, например, прогресс на панели поиска, независимо от того, выполняю ли я переход между несколькими действиями. Можете ли вы рассказать мне об этом?

4. @Pierre Я не смог увидеть пример медиаплеера в службе переднего плана, но подключенного к приложению. Можете ли вы поделиться таким примером источника?

5. @sakibshaikh Взгляните на исходный код telegram, может быть, вы сможете получить некоторое представление о том, как действовать дальше: MediaController [: 1742]- github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main /… затем ячейка AudioPlayerCell [:211] — github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main /…