Skip to content

Feature Request: System-wide floating video player (overlay service) #5421

@aliIsazadeh

Description

@aliIsazadeh

Your use case

What would you like to do?

I would like to add support for a floating video player overlay that allows users to keep watching a video while navigating outside the Element X app. The floating window should be draggable, resizable, and persistent on top of other apps (similar to YouTube’s floating player).

Why would you like to do it?

This would improve multitasking. Users often want to continue watching a call recording, conference, or media file while browsing messages, switching rooms, or even leaving the app. A floating player ensures media playback is not interrupted when leaving the Element app.

How would you like to achieve it?

My idea is to implement a service with display a draggable video window. The service would:

Render the video in a floating view using VideoView or ExoPlayer.

Provide basic controls (play/pause, close, maximize).

Manage overlay permissions (Settings.canDrawOverlays).

Optionally integrate with Picture-in-Picture mode for devices that support it.

This approach would be separate from the in-app video viewer, ensuring it works system-wide, even if the user switches apps.

Have you considered any alternatives?

Yes, I’ve considered the following:

Android Picture-in-Picture (PiP) mode:
Android already supports PiP for videos, but it is limited in customization (only certain aspect ratios, no custom UI beyond basic controls) and behaves differently across OEMs. My proposal offers more flexibility (draggable window, custom controls, consistent UI).

In-app mini-player:
Keeping the video minimized within the Element app UI is simpler, but it does not solve the use case of watching video while switching to other apps.

Background audio playback:
Another alternative is allowing video audio to keep playing when the app is in the background, but this does not cover users who want to see the video while multitasking.

I believe a floating overlay provides the most complete experience for users who want video to remain visible while using other apps.

Additional context

Many modern messaging apps (e.g., Telegram, WhatsApp) support floating or picture-in-picture video playback. This sets a strong user expectation for multitasking during video calls or media playback.

Because Element X is built with a Compose-first architecture, implementing this feature in the exact same way as other messengers may not be straightforward. However, by using an overlay service approach (similar to YouTube’s floating player), it is possible to provide a similar experience where the video stays visible and draggable even outside the app.

This would bring Element X closer to feature parity with other messaging apps while also offering a unique implementation adapted to Element’s architecture.

Are you willing to provide a PR?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-EnhancementNew features, changes in functionality, performance boosts, user-facing improvements

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions