Allow always streaming from client for Chromecast

Feature description:

When the media source is down, Symfonium seems to still be able to do casting, which I assume is possible through streaming from the client directly. But when the media source is up, it seems to alwasy stream from the media source server directly. It would be good to allow always streaming from the client instead.

Problem solved:

It is possible that the media source is accessible by Symfonium at the client side, but not by the receiver. It can happen in various situations, for example,

  • self-signed certificate (with root certificate installed on the client device, but receiver doesn’t support such setting),
  • different network settings (e.g. the media source is behind an VPN that client has access to, but the receiver doesn’t).

Brought benefits:

This should help making the casting more reliable in various cases with self-hosted local media service that is not exposed to public Internet.

Other application solutions:

 Not provided 

Additional description and context:

 It’s mostly because I run a Navidrome instance behind a local server with self-signed certificate. I noticed that when the server is down or when the authentication fails due to password change, I can cast normally to my soundbar, but if the server is up and connected properly, casting fails with many errors. After diagnosis, I believe it is related to my arrangement with my media source.

However, I think the assumption that receiver always has the same access to media source as the sender is questionable fundamentally. So it may be better to allow user to force streaming from client instead. It can be part of the settings of media source, e.g. saying some media source should never be sent to a receiver directly. 

Screenshots / Mockup:

    

It works because you have an offline copy of the media. But would not if you did not have one :slight_smile: and requires proxying the data. (Something that Symfonium can do).

But as this use a tons of battery and cpu on the phone this can only be a per renderer option and so is a lot more complex thing to address.

It works because you have an offline copy of the media. But would not if you did not have one

I would be okay if such option is only enabled when all media is cached for offline.

this can only be a per renderer option

I’m not sure I understand this. What is a per renderer option?

Another alternative is to automatically attempt streaming from client when streaming from the server fails, as if the server is offline. That way there wouldn’t need an extra option.

A renderer is where you cast.

And I do not add things that works randomly without explanation for the user.