I'm prototyping a device using a raspberry pi 3b+. Here are some of the requirements I'm hoping to fulfill.
*When I say "device" I'm referring to the raspberry pi.
- Stream device microphone audio input over network
- utilize echo cancellation
- simultaneously stream while playing local audio on device
- Control the output of audio files on local device
- Controls: choose from static list of files, play, pause, volume, etc
- Output audio from remote sources over network, which would temporarily pause any other output
- no internet connection required
- user can connect to multiple devices
- device can handle multiple users connected to it
Here is a list of frameworks I am considering in no particular order:
- rest api
- web sockets (Mqtt, WebRTC)
WebRTC seems like a good solution for the bi-directional audio streaming, but I can't determine if whatever I use for that will cooperate with the device's ability to playback local audio files. If not, I could probably find some minimal audio library controller api that I could tap in to.