BLeeEZ / amperfy

Amperfy is an iOS/iPadOS/macOS app to play songs from an Ampache or Subsonic server
GNU General Public License v3.0
510 stars 40 forks source link

[Feature Request] Chromecast support #277

Open brokoler opened 5 months ago

brokoler commented 5 months ago

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!

BLeeEZ commented 5 months ago

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?

brokoler commented 5 months ago

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.

  1. Chromecast support can be added via Google SDK: https://developers.google.com/cast/docs/ios_sender/integrate?hl=en

  2. 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

BLeeEZ commented 5 months ago

Ok, thank you for the clarification. I will take at the documentation soon.

tobiaseisenschenk commented 1 month ago

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 ?

BLeeEZ commented 1 month ago

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.

tobiaseisenschenk commented 1 week ago

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.