Работал ли с ExoPlayer

«Работал ли с ExoPlayer» — вопрос из категории Android компоненты, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ExoPlayer — это мощная библиотека для воспроизведения медиа в Android, поддерживающая аудио, видео, адаптивные форматы (HLS, DASH) и DRM.

Ключевые особенности:

  • Гибкость: можно кастомизировать рендеринг, обработку данных, логику буферизации.
  • Поддержка форматов: MP4, WebM, HLS, DASH, SmoothStreaming.
  • Расширяемость: можно реализовать собственные DataSource, Renderers.

Пример базовой настройки:

val player = ExoPlayer.Builder(context).build()
playerView.player = player
val mediaItem = MediaItem.fromUri("https://example.com/video.mp4")
player.setMediaItem(mediaItem)
player.prepare()
player.play()

Плюсы:

  • Открытый исходный код (Google).
  • Лучшая альтернатива MediaPlayer для сложных сценариев.

Минусы:

  • Больший размер APK.
  • Требует ручного управления жизненным циклом (onPause, onResume).

Использовал для стриминга видео, аудиоплееров и кастомизации UI/UX.