Use with ESP32 #504
-
I see that this library is what is used in Squeezelite for Airplay capability. Any pointers on how I could utilize it in my own ESP32 project? Squeezelite is a big project and it's hard to figure out how AirConnect is used inside it. |
Beta Was this translation helpful? Give feedback.
Replies: 9 comments
-
Can you explain what you want to do? Because there is no direct link with Squeezelite, although I'm involved in both project, especially in SqueezeESP32. |
Beta Was this translation helpful? Give feedback.
-
I am working on a meditation device that is built on an ESP32-WROVER-E. Already have an app that provisions the WiFi and adds the MDNS services for our systems to communicate with it. The device has a nice amplifier and speakers so it makes sense to expand its capabilities by adding an Airplay client so the user can use it as a music player as well. I played around with SqueezeESP32 but that's heavily dependent on LMS and runs a webserver so it's really difficult to make that work with our tech stack. |
Beta Was this translation helpful? Give feedback.
-
So which part would like to use? |
Beta Was this translation helpful? Give feedback.
-
Just the airplay casting for casting music from an Apple device. I believe it's the raop in this case if I am not mistaken. |
Beta Was this translation helpful? Give feedback.
-
oh, just airplay then. Best then is to extract the airplay part of SqueezeESP32. Look in components/raop, it's reasonably independent. |
Beta Was this translation helpful? Give feedback.
-
Awesome, just wanted to make sure there are no dependencies beyond what's inside the raop component. Thanks for the quick assist! |
Beta Was this translation helpful? Give feedback.
-
I can't guarantee there is none, but it should be reasonably easy to remove because it was pre-existing before SqueezeESP32. And I'll be happy to help |
Beta Was this translation helpful? Give feedback.
-
That would be great. As a web and mobile developer, I am completely lost looking at this stuff. |
Beta Was this translation helpful? Give feedback.
-
Basically,
The whole thing depends on the alac codec provided in codecs/ but that's the Apple original code, with a small wrapper to allow it to be called in C (as it is C++). It also depends on a mDNS broadcaster that esp-idf mdns provides. I also have an independent stack I'm maintaining but there is no need here. It's a callback-based system where this lib will callback your system for commands it receives and also will call your function for every decoded packet of audio and you'll have to feed it to your audio backend. |
Beta Was this translation helpful? Give feedback.
Basically,
raop.*
,rtp.*
,dmap_parser.*
should be very lightly modified, maybe not at all.The whole thing depends on the alac codec provided in codecs/ but that's the Apple original code, with a small wrapper to allow it to be called in C (as it is C++). It also depends on a mDNS broadcaster that esp-idf mdns provides. I also have an independent stack I'm maintaining but there is no need here.
It's a callback-based system where this lib will callback your system f…