Media_player paradigm?

I have studied the media_player documentation here Media Player - Home Assistant (home-assistant.io) but I am confused by the paradigm.

  • Is a media player a source?
  • Is a media player a sink?
  • Is it both?

I have an Onkyo receiver, which shows as a media player and I can configure sources corresponding to its inputs. Great. Looks like a media sink.

But then I have a squeezebox server with the Onkyo receiver configured as a speaker. This combo shows as a second media player, so that’s a bit of both, a source and a sink.

Then there is Spotify, which again comes as a media player. It allows to select a sink as “source” but doesn’t play anything by itself. So it is rather a media source.

In my home I have many more combinations, by now a total of over 20 media players. What is the proper way to manage this? Shouldn’t there by a distinction between source devices and sink devices and then a way to link the two? At least, that’s the mental model looking at the hardware way of connecting things in the AV world.

A media player entity is a target for audio and/or video services to control that media player. Different players have different services available.

The distinction between source or sink, or both, is not really relevant to Home Assistant as this is defined by the services available for each player.