Работал ли с плеерами

Ответ

Да, работал с различными плеерами, включая ExoPlayer и MediaPlayer.

ExoPlayer предпочитаю за гибкость, поддержку HLS, DASH, адаптивного стриминга и кастомизацию UI. Пример инициализации:

val player = ExoPlayer.Builder(context).build()  
player.setMediaItem(MediaItem.fromUri(videoUrl))  
player.prepare()  
player.play()  

MediaPlayer использовал для простых задач, но он менее гибкий.

Также сталкивался с интеграцией YouTube Player API и настройкой кеширования для офлайн-воспроизведения.

Ответ 18+ 🔞

А, ну это ж моя тема, ебать мои старые костыли! Работал, конечно, со всеми этими штуками — и с ExoPlayer, и с классическим MediaPlayer.

ExoPlayer — это вообще красавчик, ёпта. Его за гибкость люблю, прям хитрая жопа. Поддержка там HLS, DASH, адаптивного стриминга — всё как у взрослых. И интерфейс кастомизировать можно до полного пиздеца, хоть мартышкой сделай. Вот смотри, как просто его поднять:

val player = ExoPlayer.Builder(context).build()
player.setMediaItem(MediaItem.fromUri(videoUrl))
player.prepare()
player.play()

А MediaPlayer... Ну, это как дедовский метод. Для простых задач — сойдёт, типа включить и выключить. Но как только захочешь что-то посерьёзнее — сразу чувствуешь, что он, блядь, с винтом. Гибкости — ноль, доверия — ебать ноль. Как будто на дворе 2012-й год.

Ну и по мелочи всякой: YouTube Player API пихал, кеширование для офлайна настраивал, чтобы видео грузились, даже когда интернет накрылся медным тазом. В общем, было дело.