ovos-media Legacy Compatibility¶
In a nutshell
How ovos-media and its OCP pipeline plugin stay compatible with the legacy audio backend and with old-style pre-OCP skills, plus the known architectural coupling issues carried over from that history. For the core ovos-media service this extends, see ovos-media. For the legacy audio backend itself, see Audio Service.
Legacy Compatibility¶
ClassicAudioServiceInterface¶
When ovos-media is not running (i.e., the system still uses ovos-ocp-audio-plugin inside
ovos-audio), the pipeline plugin falls back to emitting mycroft.audio.service.* bus messages
to control the classic audio service via ovos_bus_client.apis.ocp.ClassicAudioServiceInterface.
LegacyCommonPlay Bridge¶
For skills that still use the old Mycroft CommonPlaySkill base class (pre-OCP), the pipeline
plugin includes a bridge:
-
Emits
play:queryinstead ofovos.common_play.query -
Collects
play:query.responsefrom old-style skills -
Emits
play:startto tell the winning skill to handle playback itself
The bridge's own docstring carries a removal note targeting ovos-core 0.1.0, a version
number from before ovos-core adopted its current numbering and never reconciled since —
treat the bridge as legacy-support code with no confirmed removal date, not as scheduled
for a specific upcoming release.
Known Coupling Issues¶
OCPVoiceSkill is a skill¶
OCPVoiceSkill in ovos_media/skill.py inherits from OVOSCommonPlaybackSkill, constructed
separately from the player and given a reference to its MediaCatalog (OCPMediaCatalog is
now just a back-compat alias for the plain, skill-free catalog object). OCPVoiceSkill registers
ovos-media as a skill on the bus and loads skill infrastructure (settings, locale, etc.). It
registers @ocp_search() to expose liked songs as a search result. There is no
@ocp_featured_media() handler.
Music Assistant next/prev delegate to the queue API¶
The Music Assistant audio backend's next()/previous() on the legacy AudioBackend
interface work: they delegate internally to Music Assistant's own queue API
(next_track()/previous_track()) rather than implementing track skipping themselves.
Read next: ovos-media HiveMind: multi-session gating Related: ovos-media · ovos-media MPRIS Integration · Audio Service