Короткое определение

Open-source видеоплеер Google для Android, сейчас распространяется как часть AndroidX Media3. Играет HLS, DASH, SmoothStreaming, MP4 и многие другие форматы с Widevine DRM.

ExoPlayer стартовал в 2014 году как альтернатива встроенному в Android MediaPlayer, у которого было непредсказуемое поведение на устройствах и слабая поддержка стриминга. Google переделал его в гибкую библиотеку, выставляющую каждую стадию – DataSource, Extractor, Renderer – для кастомизации. К Android 10 (2019) ExoPlayer стал де-факто playback-движком практически всех Android-стриминговых приложений (Netflix, YouTube, Disney+, Twitch). В 2022 переименован в AndroidX Media3 с обратно-совместимым API.

Дизайн ExoPlayer модульный: `MediaSource` собирает стриминговую сессию из HLS, DASH или progressive MP4; `Extractor` парсит контейнерные форматы; `Renderer` оборачивает MediaCodec для декодирования видео/аудио; ABR-движок сидит между source и renderer. Любой слой заменяем, поэтому ExoPlayer крутится в таких разных приложениях. Widevine DRM интегрирован через Android-овый MediaDrm; FairPlay на Android не работает.

Для Android-таргетированных стриминг-приложений в 2026 году ExoPlayer/Media3 – единственный практичный выбор. Нативный MediaPlayer слишком ограничен; web-based плееры вроде hls.js работают в WebView, но теряют аппаратно ускоренное воспроизведение. Большинство Android-стороны стриминг-инженерных вопросов – про кастомизацию ExoPlayer: модификация ABR-алгоритма, интеграция аналитики, специфичные DRM-воркфлоу, особенности MediaCodec у отдельных вендоров.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.