Ответ
Да, работал с видеостримингом через ExoPlayer и Media3. Основные задачи:
- Настройка адаптивного стриминга (HLS, DASH)
- Кастомизация UI плеера
- Обработка ошибок сети/буферизации
- Оптимизация потребления батареи
Пример базовой реализации ExoPlayer:
val player = ExoPlayer.Builder(context).build()
playerView.player = player
val mediaItem = MediaItem.fromUri("https://example.com/stream.m3u8")
player.setMediaItem(mediaItem)
player.prepare()
player.play()
Также интегрировал стриминг WebRTC для видеозвонков. Знаю особенности работы с DRM (Widevine), фоновым воспроизведением и управлением аудиофокусом.