Regarding openHAB mediaplayer support : Main problem is that it is not standardized. Every openHAB device binding has different names for the same thing and every device has slightly different features.
My integration is reading at startup the things and tries to figure out what can be done. Of course only the commands attributes described in the entity documentation can be supported (see media player entity in https://github.com/YIO-Remote/documentation/wiki/developer-entity-types).
I have only a simple media device (frontier silikon) supported by openHAB. So I cannot really test features for other devices. But everybody who wants to use the openHAB YIO Mediaplayer combination and has a minimum understanding of REST api can figure out some things and tell me exactly what I have to implement.
You need to install in openHab the “REST api documentation” plugin (MISC).
You can easy list the things with the /things command.
Here you find things and its channels. A channel must be linked to an item to access its state and to send commands.
In Sonos Plugin docs I can read, that “control” is read-write and used for things like play/pause/next/prev.
But in the docs I read also that “state” is used for this purpose.
Using the REST api documentation it is easy to access the current value of an item, and to send com mands to this item. And if you can describe me exactly which value an item like “control” delivers and which commands it understands than I can implement it.
The available commands are documented here : https://www.openhab.org/docs/concepts/items.html,
But the returned states are not always clear and especially which channel of the thing delivers it is not clear