Snapcast: [Feature Request] iOS control

Created on 7 Oct 2016  路  13Comments  路  Source: badaix/snapcast

Either web control or barebones iOS app

feature request

Most helpful comment

Hey,
first of all I want to raise the question if this should be part of the snapcast project itself? The jsonRPC should be good enough to enable 3rd party projects to utilize Snapcast.

But nevermind, what I can offer so far is a jsonRPC wrapper (written with Express via node) that offers an http api (json). On top of that I've build a simple AngularJS (1.x) app that shows all avaiable Snapcast Clients and you can change the volume and mute a specific client. It looks like this:
multiroom-music

If you wish I can clean up that code and make it available for you.

All 13 comments

Hey,
first of all I want to raise the question if this should be part of the snapcast project itself? The jsonRPC should be good enough to enable 3rd party projects to utilize Snapcast.

But nevermind, what I can offer so far is a jsonRPC wrapper (written with Express via node) that offers an http api (json). On top of that I've build a simple AngularJS (1.x) app that shows all avaiable Snapcast Clients and you can change the volume and mute a specific client. It looks like this:
multiroom-music

If you wish I can clean up that code and make it available for you.

@ThYpHo0n I think both ways are doable.
Personally I'd vote for your own repo to host an http api wrapper. Then link to it in the snapcast readme. I agree though, that that something like this is desperately needed.

+1
like
star
and thumbs-up for a webUI ;)

+1
A webinterface, integrated into snapserver, would be nice.

@ThYpHo0n would it be possible to share the repo with your UI ?
thanks

I will polish everything and make it public later today, sorry for the delay, my MBP crashed and pushed my todos a bit back.

@ThYpHo0n sounds great 馃憤
@quantenschaum I don't think that there whould be a webinterface integrated into snapserver. A stable API should be sufficient. Maybe a REST interface would make sense in the server, so that you could fire HTTP requests instead of "telnet"
I agree with @s1lvester that there could be a dedicated repo with remote control wrappers for web, java, swift, ...
Having a swift API would make it easy to do an iOS controller app.

As side note regarding apple: I currently have a mac book and an iPhone available for the next few weeks (on project basis in my job). This is why I ported Snapcast to macOS and I was also playing around with Airplay. But in general I don't have iOS or macOS available, an hence cannot actively support it.

Here we go: https://github.com/ThYpHo0n/sarah-ng
I still miss one config for the lightbulbs (which is irrelevant for the discussion here) and it's really quite stupid because it just uses express in the backend to wrap the python scripts which control the Snapcast server and right now it must run on the same host as the Snapcast server but you can try it out / play around with it and maybe it's a good enough blueprint for some of you for your own solutions :)

@ThYpHo0n Looks nice. Thank you. Starred and Watching. I'll def. check this out once my schedule clears up.

@badaix I'd really like to develop for ios too, but the lack of macos in my household makes it hard to impossible. With all the fuzz about development-accounts and so on, I wouldn't put something out there that you're not able to maintain and stand behind the code-quality - btw. snapcast code-quality is really good. :clap:

@ThYpHo0n You should check out fhem if you don't already know it. lightbulb control is just one of things you can do with it. :)

http://fhem.de/fhem.html

Just would like to share with you the simple webui, I've worked on using the JSON-RPC API, and the scripts provided by @ThYpHo0n

You can find the first draft there:
https://github.com/atoomic/snapcast-volume-ui

This should work on any devices. This is super easy to setup, all clients are auto discovered.

Snapcast

I'm currently working on a remote control for iOS and Android using Flutter. If anyone wants to contribute please feel free to make PRs. Also if someone has a machine running macOS that would be very helpful for me to see how the app behaves on an iOS device (I can only build for Android right now).

Link to the project: https://github.com/HazWard/snapcontrol

For now it only displays the status at launch but doesn't update it

Was this page helpful?
0 / 5 - 0 ratings