2012-03-10 3 views
0

Я использую объект VideoView для воспроизведения видео в приложении для Android, которое я создаю. Я не хочу использовать стандартный MediaController, но хочу реализовать свою собственную. Ему не нужно иметь ничего необычного или лишнего, но я должен иметь возможность точно контролировать размещение и внешний вид элементов управления. Я придумал следующее (UGLY!) «Решение». Я говорю «решение», потому что некоторые другие вещи сейчас идут не так, и я не уверен, связано ли это с тем, как я его решил (обновит сообщение, если узнаю). Я сейчас делаю следующее:Пользовательский Android MediaController через взлом MediaController. Необходимо?

  • Используйте стандартный объект VideoView
  • Подкласс MediaController
  • Override скрыть(), шоу(), и т.д. методы
  • В переопределенном методе setMediaPlayer я держу ссылку на активный MediaPlayer, чтобы я мог приостановить/сыграть/etc
  • Дублировать почти все обычные действия MediaController в классе (кроме графической части) и игнорировать методы в родительском классе.

Я хочу использовать VideoView по умолчанию и не писать самостоятельно (я пробовал это, и это заняло много времени и дало неожиданное поведение). В основном я занимаюсь тем, что этот подкласс MediaController представляет собой MediaController. Это похоже на наличие двух почти одинаковых классов в одном классе. Исходный класс MediaController используется только для того, чтобы передать объект подкласса в VideoView. Кажется, действительно неудобно. Каков правильный подход для этого?

Joris

ответ

0

Я на самом деле довольно немой. Все методы, которые я использую в подклассе MediaController, которые обращаются к MediaPlayer, - это методы, которые непосредственно доступны в VideoView (getCurrentDuration(), getBufferPercentage(), pause(), start() и т. Д.). Поэтому я могу просто сделать свой MediaController подклассом Object и передать VideoView в конструкторе, чтобы я мог получить доступ к тем же функциям.

Смежные вопросы