Медиа-плеер Android - PullRequest
       21

Медиа-плеер Android

5 голосов
/ 06 июня 2011

У меня есть сервис, который создает, воспроизводит и обрабатывает медиаплеер (только аудио), но у меня есть панель поиска в основной активности, которую я хочу, естественно, показать, как проходит аудиофайл, и позволить пользователю искать различные позиции.

Что мне, черт побери, нужно выяснить: каков наилучший или правильный способ подключения панели поиска в пользовательском интерфейсе к медиаплееру в службе?

Ответы [ 3 ]

4 голосов
/ 06 июня 2011

Вот как бы я это сделал:

  1. Привязка к сервису, воспроизводящему аудио. Интерфейс, который сервер возвращает в onBind, должен иметь функции getCurrentPos() и getDuration().

  2. В вашей деятельности onCreate привязка к сервису

  3. В вашей деятельности onResume используйте функцию Handler postDelayed для запуска обновлений.
  4. В вашей активности onPause остановите все обратные вызовы, отправленные с помощью функции postDelayed.
  5. В runnable, который передается в postDelayed, запустите boundService.getCurrentPos() и boundService.getDuration() и обновите панель поиска соответствующим образом.

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

  1. Для связанных сервисов прочитайте «Связанные сервисы» документацию (локального ограниченного сервиса должно быть достаточно в вашем сценарии).
  2. Как пользователю Handler для периодических обновлений читать этот вопрос: Повторить задачу с задержкой?
0 голосов
/ 20 декабря 2013

Вы также можете попробовать Отто с площади

Вам просто нужно создать класс SeekBarSyncEvent.java, поместить туда нужные параметры:

  • int progress
  • int duration
  • логическое значение от пользователя
  • все, что вам нужно

Затем вы можете инициализировать панель поиска из действия, отправив событие из шины с вашим классом SeekBarSyncEvent в методе onPrepared() из вашего сервиса.

Наконец, создайте метод @Subscribe в своей деятельности, чтобы он вызывал ваш метод seekBarUpdate().

Это должно работать нормально, красиво и легко в обслуживании.

0 голосов
/ 06 июня 2011

Попробуйте взглянуть на MediaController , чтобы узнать, пригодится ли он вам.

...