IntoRadio Cast
Az IntoRadio Cast protokoll lehetővé teszi, hogy IntoRadio Cast képessé tegyél bármilyen programozható mikrokontorollert!
Python futtatására alkalmas eszközökön
Python programok futtatására alkalmas eszközökön használhatod a a Python programunkat.
Az IntoRadio Cast működéseinek fázisai
- Alkalmazás felfedezhetőségének biztosítása helyi hálózaton
- IntoRadio alkalmazással való párosítás
- Beérkező parancsok feldolgozása, hitelesítése
- A parancs végrehajtása
Alkalmazás felfedezhetőségének biztosítása helyi hálózaton
Az IntoRadio Cast protokoll a helyi hálózaton a következő végponton kell megtalálható legyen: {eszköz IP címe}:9845/ircast/discover, és a végpont meghívására a következő választ kell adja:
{"name":"Az eszköz neve","type":4,"paired":false,"version":1}
Ahol a name az eszköz neve, amilyen néven látható lesz, a type 4 (mikrokontroller), és a paired pedig annak az állapota, hogy jelenleg van-e csatlakozva az eszközhöz valameilyen másik vezérlő eszköz.
IntoRadio alkalmazással való párosítás
Amennyiben egy másik, IntoRadiot futtató eszköz csatlakozási kérelmet küld az eszközve, akkor az a {eszköz IP címe}:9845/ircast/pairing végpontot fogja hívni a következtő POST adattal
{"type":1,"token":"Mp5AcnImlerIOwc7kefc"}
Ahol a name a csatlakozó eszköz neve, a type a típusának az azonosítója, a token pedig egy egyedi hitelesítő kód.
Amennyiben a párosítás lehetséges (nem végzi más eszköz éppen a vezérlést), akkor a paired értékét true-ra kell állítani, és a szükséges visszatérés:
{"success":true,"playing":false}
Ahol a played azt jelzi, hogy az eszköz játszik-e éppen tartalmat, vagy nem.
Amennyiben a párosítás sikertelen (például egy új eszköz próbál csatlakozni úgy, hogy a paired értéke true), akkor a szükséges visszatérés:
{"success":false}
Beérkező parancsok feldolgozása, hitelesítése
Sikeres párosítás esetén a következő végpontok lesznek elérhetőek a csatlakoztatott eszköz számára:
- /ircast/media
- /ircast/status
- /ircast/playorpause
- /ircast/volume
- /ircast/seek
- /ircast/disconnect
A műveletek elvégzése előtt a hasht ellenőrizni kell, hogy megegyezik-e a párosításnál kapott tokenből, és a művelet elküldésének idejét tartalmazó UNIX időbélyegből képzett MD5 hashhel! hash képzés módja: MD5(idő.token) (az UNIX-idő és a tokennek a stringként való összefűzéséből képzett MD5)
media
Lejátszandó média küldése. POST kérés:
{"media":"https://..../audio.mp3","time":1602331354,"hash":"27f3632a25c22bfb5b7572431bd20b80"}
A megadott média lejátszását kell elindítani.
status
A lejátszás aktuális állapotának ellenőrzése. POST kérés:
{"time":1602331354,"hash":"27f3632a25c22bfb5b7572431bd20b80"}
Válasz:
{"playing":true,"volume":0.6,"duration":1538,"position":462}
playorpause
A lejátszás leállítása vagy indítása. POST kérés:
{"time":1602331354,"hash":"27f3632a25c22bfb5b7572431bd20b80"}
volume
A hangerő módosítása. POST kérés:
{"volume":0.72,"time":1602331354,"hash":"27f3632a25c22bfb5b7572431bd20b80"}
Ahol a volume 0 és 1 közötti érték (0 - 0%, 1 - 100%)
seek
A lejátszás tekerése (csak podcast esetén). POST kérés:
{"position":1285,"time":1602331354,"hash":"27f3632a25c22bfb5b7572431bd20b80"}
Ahol a position egy egész szám, ami a poziciót jelöli másodpercben.
disconnect
Az eszköz lecsatlakoztatása, és lejátszás leállítása. POST kérés:
{"time":1602331354,"hash":"27f3632a25c22bfb5b7572431bd20b80"}
A művelet után a paired értékét false-ra kell állítani.
A parancs végrehajtása
A parancs beérkezése, és a hash hitelesítése után a lejátszás vezérlésére kapott parancs végrehajtható.
A status végpont kivételével siker esetén a küldendő válasz a következő:
{"success":true}
Hiba esetén a küldendő válasz a következő:
{"success":false}
Jó programozást!