pi-top-Python-SDK
pi-top-Python-SDK copied to clipboard
Web Controller: Add support for using remote device features
e.g. if accessed from a smartphone, allow support for using the onboard camera/microphone/accelerometer.
So after chatting with @olivierwilkinson, we have determined that Chrome's security policy will only allow you to access your device's microphone/camera when the site's origin is on https or is called localhost.
Cloudflare offers a free tunnelling service that will likely be sufficient for our purposes here.
Some ideas that springboard off this -
Multiplayer games! Each client that connects to the robot's server gets their own socket and the broadcast method sends to all of them.
e.g. a 'game' where there's a robot and multiple players trying to make it do different things competing by using their phone's gyros, mics, cameras e.g. a robot where each person who joins can only control 1 part at a time
Cloudflare offers a free tunnelling service that will likely be sufficient for our purposes here.
Does this require a unique URL to be set up for each user every time they run it?
https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins
adding this reference to the original chromium security notice.
I'm wondering if we can use Further to tunnel this data. It's a slightly different use-case than we originally intended with the web controller but it would be interesting to be able to use someone's microphone from within challenges to interact with their robot
Stumbled on ngrok today and tried tunnelling the web controller through that - it works and I have an https URL but it's painfully slow - I've read that Cloudflare argo tunnel is a bit quicker but I don't think it will be good enough. Unless we can get a TLS connection through a web URL but send all the data over the local network (like Further does) I don't think this will be a viable solution - is this possible?