finamp
finamp copied to clipboard
[Feature Request] Cast Support
Any plan to support cast (chromecast or DLNA), something like the native "play on" feature of the official jellyfin app? Thanks!
A lot of people have asked for this, I'm waiting on the audio package I'm using to support it. It's in progress there, so I should be able to add casting soon: https://github.com/ryanheise/just_audio/issues/211
As for DLNA, I might be able to make it work. I don't know much about DLNA, but I've heard that the Jellyfin server should handle it and I just have to give the command to the server.
On iOS, you can use AirPlay to play both downloaded and streamed songs by selecting the device in control center/the playing notification. Still no Cast/DLNA yet though.
I use the Mopidy-Jellyfin plugin for Mopidy, and this would be nice when the audio package is finished as long as it can be added in a libre manner :)
Any plan to support cast (chromecast or DLNA), something like the native "play on" feature of the official jellyfin app? Thanks!
Any updates here? Is there anything someone can do to assist? This would be a killer feature for me, as I try to de-Sp**ify my life.
I know this is reliant on the package, but any updates on this? Sucks to need to go to the Jellyfin app just to cast to my Mopidy server.
Any update/timelines for this? :) Thanks
A temporary solution could be to allow controlling of other Jellyfin devices. While not exactly the same as casting, I don't see why this would not be possible to implement. It is already a feature with other Jellyfin clients.
Hi, I'm very interested in this feature and would be willing to develop it. I have no experience with DLNA, Jellyfin APIs or Finamp development, but I think it should be doable. @jmshrv https://api.jellyfin.org/#tag/Dlna and https://api.jellyfin.org/#tag/DlnaServer would be the relevant APIs, right?
Those look about right, also the just_audio issue makes it look like it'll actually be possible to add casting now so I may look into it while I have access to devices that have access to casting
But the casting thing is different from DLNA, right? Because casting would be from the device and DLNA from the server where jellyfin runs if I understood things correctly.
Ah I see audio_cast
supports DLNA itself, so it goes from the device? I think both modes of DLNA make sense to be implemented. My usecase would favour the DLNA from the server, so I'd like to implement that part.
Ah yeah I just mentioned Chromecast as a separate thing, I'm pretty sure DLNA should be handled from the server
Ok, should we split it up into a separate issue? I think the UI parts will probably be the same, but the logic is obviously completely different.
Yeah that's a good idea. For implementing DLNA, these are probably the relevant files:
-
services/jellyfin_api.dart
- This actually handles sending HTTP requests to and from Jellyfin. It's pretty much just a simple Chopper thing that returns JSON. -
services/jellyfin_api_helper.dart
- This is what the whole app uses to interact with Jellyfin (and by extension the offline stuff, but that's all obscured). In this, you'll call the method you make in jellyfin_api.dart and return a nice class instead of some random JSON -
services/music_player_background_task.dart
- This is where the music service for Finamp is located - it handles current play state. It's closely related to theaudio_service
package, which tells the OS about the currently playing song (for background playback handling, now playing status etc). I don't really know how DLNA will tie in with it for a good user experience, but off the top of my head making a new music service that uses DLNA instead of actually playing audio would probably work.
Oh, also models/jellyfin_models.dart
, which contains all the classes that Jellyfin returns. For DLNA, you shouldn't have to mess about with Hive (used for offline storage), so it should be pretty recognisable if you've ever worked with json_annotation
.
Thanks for the hints :)
New issue for DLNA opened, please rename this one to Cast only :)
Does anybody start working on that?