Как я могу сохранить фоновую музыку во время изменения Activity?

В моем приложении есть фоновая музыка, воспроизводимая в цикле, с использованием MediaPlayer . Я останавливаю музыку в onPause Activity, чтобы она не продолжала воспроизводиться, если пользователь покидает приложение, нажав клавишу «Домой», или если он получает телефонный звонок и т. Д.

Однако , Теперь мне нужно, чтобы музыка продолжала плавно воспроизводиться, когда пользователь переходит к определенным другим действиям. То есть, если они нажимают кнопку A, я добавляю действие A в стек, и музыка должна продолжаться; однако, если они нажимают кнопку B, я добавляю действие B в стек, и музыка должна остановиться. Точно так же музыка должна продолжаться, если они нажмут на телефоне кнопку «Назад», чтобы вернуться с действия A к исходному действию.

I ' Мы пробовали снова запустить MediaPlayer в onResume действия A, но во время перехода есть довольно заметный пробел в музыке.

На данный момент у меня ] onPause запускает задержку в полсекунды перед затуханием музыки еще на четверть секунды; это можно отменить из другого действия onResume . Это означает, что музыка останавливается достаточно быстро, когда пользователь выходит из приложения; однако, когда пользователь переключает действия, я все равно получаю небольшую паузу в музыке на некоторых более медленных устройствах. Более того, это похоже на действительно грязный хакер.

Есть ли способ лучше?

На данный момент у меня есть onPause , запускающий задержку в полсекунды перед тем, как затухать музыку еще на четверть секунды; это можно отменить из другого действия onResume . Это означает, что музыка останавливается достаточно быстро, когда пользователь выходит из приложения; однако, когда пользователь переключает действия, я все равно получаю небольшую паузу в музыке на некоторых более медленных устройствах. Более того, это похоже на действительно грязный хакер.

Есть ли способ лучше?

На данный момент у меня есть onPause , запускающий задержку в полсекунды перед тем, как затухать музыку еще на четверть секунды; это можно отменить из другого действия onResume . Это означает, что музыка останавливается достаточно быстро, когда пользователь выходит из приложения; однако, когда пользователь переключает действия, я все равно получаю небольшую паузу в музыке на некоторых более медленных устройствах. Более того, это похоже на действительно грязный хакер.

Есть ли способ лучше?

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

Есть ли способ лучше?

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

Есть ли способ лучше?

[Изменить: если это поможет, MediaPlayer содержится в статическом классе, к которому я могу получить доступ из любого места приложения.]

5
задан teedyay 4 March 2011 в 16:06
поделиться