[Feature Request] Chromecast support
Hello,
really loving this app so far, together with my selfhosted Airsonic server.
Only feature missing compared to other Subsonic apps for me is missing Google Chromecast support. Would be great if this feature request would be added to the future roadmap.
Great job and thanks for creating a beautiful open source app!
Hi,
Thank you. What exactly do you mean with Chromecast support? I don’t own one and I never heard of direct Chromcast support. Is there a special API needed? Do you have a specification or documentation for me to get more info about your request?
Hi, thanks for your interest!
Chromecast is a proprietary casting protocol similar to Apple Airplay. The advantage of Chromecast is mainly the lossless audio support of the protocol, if offers higher bitrates compared to Airplay which uses compressed AAC. Chromecast also doesn't stream directly from the phone, the Chromecast device receives the streaming URLs and plays the streams itself. You can leave the house and playlists are still continuing without your phone (great for my cats and grandparents) and it saves phone battery. Adding the feature would also make your app compatible with a much wider range of audio equipment, since many smart speakers supporrt the Chromecast protocol.
I researched what is required to add Chromecast support to an iOS Swift app.
-
Chromecast support can be added via Google SDK: https://developers.google.com/cast/docs/ios_sender/integrate?hl=en
-
I asked ChatGPT what is required to add Chromecast support to a Swift iOS app https://chatgpt.com/share/532d1fc1-687d-4ba8-94a7-db1b497633aa
I'm not a developer but I hope this information is any help.
Kind regards
Ok, thank you for the clarification. I will take at the documentation soon.
Also Chromecast user here. I would love this feature be added to this great app! I could offer to help with testing or in case you welcome contributions I might be able to help with implementation as well. What would you prefer @BLeeEZ ?
Hi @tobiaseisenschenk, contributions are always welcome. I would prefer a pull request for this feature. I am currently quite busy and have not much time to implement it by myself.
Short update here: I managed to implement the basic functionality of casting a track. Next I will spend some time to improve the user-flow and code structure to then get your feedback.
Hey @BLeeEZ I managed to implement this and would love your feedback :)
@tobiaseisenschenk Was this added to the version on the App Store?
I'm giving subsonic/this app a try and I don't see a way to Chromecast.
@tobiaseisenschenk Was this added to the version on the App Store?
I'm giving subsonic/this app a try and I don't see a way to Chromecast.
No, I had built two prototypes, which I tested on my devices. But making this production ready would have required much more time commitment and I had to discard the idea as you can see in the linked (closed) MR.
@tobiaseisenschenk Fair yeah it seems like it would be a lot of work. Just for anyone who may find their way here from a Google search my workaround has been to run https://github.com/1activegeek/docker-airconnect on my server which just exposes Chromecast devices as Airplay devices so I can stream from the app using Airplay. It works reasonably well though expect some minor issues every so often depending on your network.
My solution was to run a MPD server (mopidy) on my local mediabox (raspberry pi), which I can remote control via any iOS MPD app. It then streams directly from my remote music server to the Pi without any protocol limitations on bitrate, that airplay would have. Results in an acceptable UX, but best sound quality and I can use my phone freely as its audio is not involved.