Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

MRX-remote

Basic android remote for my player MEDIA Revolution X, written in Delphi FMX

View on Codeberg

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

MRX-remote

Basic android remote for my player MEDIA Revolution X, written in Delphi FMX

This app connects to the PC via local network (UDP Broadcast) and sends simple string commands to control playback, volume, navigation, and more.
Features

pascal
Playback Control: Play, Stop, Forward, Backward.   
Media Navigation: jump to next/previous folder.   
Video & Subtitles: Toggle fullscreen, change aspect ratio, switch between streams and files and cycle subtitles.   
Real-time Sliders: Control Volume, Zoom, Playback Speed, and Track Position directly via TrackBars.   
Search: Send search queries directly from the phone to the PC player.    
Smart Call Handling: Automatically pauses the player on the PC when an incoming call is detected on the phone, and resumes playback once the call is disconnected.

How it Works

The app uses Indy UDP Client/Server components (IdUDPClient) to broadcast commands to the local network (default broadcast IP 192.168.0.255 on Port 1777). The PC player listens for these specific string commands and executes the corresponding actions.
Command Protocol (Examples)

pascal
MRPLAY / MRSTOP     
MRSETVOL<0-100> (e.g., MRSETVOL50)     
MRSETPOS<0-1000> (e.g., MRSETPOS750 to jump to 75% of the track)      
MRPAUSECALL (Triggered automatically on incoming call)      
MRSEARCH<query> (Sends search text to the player)

Tech Stack

pascal
IDE: Delphi RAD Studio 11+ (Targeting Android via FireMonkey - FMX)    
Networking: Indy 10 (UDP)    
OS Integration: Android PhoneDialer API (for call state detection)

photo_2026-06-17_08-10-31

possible commands MRX already reacts on:

pascal
GETPOSITION  <- MRX sends back position of actual track
MRGETTITLE   <- MRX sends back title of actual track
pascal
MRPLAY
MRSTOP
MRPAUSE
MRPAUSECALL   MRPLAYANDROID
pascal
MRCLOSE
MRFORWARD
MRBACKWARD
MRASPECT
MRREPEAT
MRFOLDERFORWARD
MRFOLDERBACKWARD
pascal
MRSTARTTITLE    <- + filepath
MRNEXTTITLE
pascal
MRZOOM