Basically, Media Players need to be able to understand DCE commands....
This is accomplished either by:
(1) wrapping a DCE layer around an existing media library, as in the case of libXine and the Xine_Player, or
(2) creating a thin DCE wrapper that sends commands to a running media player, as in the case of MythTV_Player and MPlayer_Player.
The second option is typically done with a patched version of the software that exposes some sort of network control socket that commands can be sent to, failing that, you can use my WindowUtils library which sends raw X events (using XSendEvent), to a matching window once it's been found (again, also in the lib, you just need a partial window name match.) This is how my MAME_Player works.
The Media Plugin, has a handler, which when it recieves a MH Play Media command, finds an appropriate router Plugin on the core. The router plugin on the core is responsible for creating 'streams', which are really just handles to what's actually playing throughout the house. Once the 'stream' has been created, the media handler keeps track of it... and then it asks the Plugin to find the appropriate Player for an entertainment area. Typically, this has to be handled by the plugin itself, but the end result is, once the appropriate players are found, a Start_Media command is sent to them, with the appropriate information required by the media player (typically a filename or a URL required by the media player, and a time stamp). In addition, each media player has associated device data containing a window class and name tuple. This is the same nomenclature used when identifying windows to X.
There is an interesting catch to this. Currently, Media Plugins are registered for a given media type, and if you need to redirect to another media player for a given media type, this currently has to be hacked into the Plugin itself (look for bRedirectToMPlayer in the Xine_Plugin source), and basically you have to change the plugin's internal states for the window to latch onto, and changing the destination device to be the new player.
So, that's..basically in a nutshell, how media playing works under LMCE.
-Thom