API de mise en miroir d'écran extrême
Extreme Screen Mirroring utilise WebSocket comme API pour fournir des fonctionnalités d'interface ( ne peut être utilisé qu'après connexion au compte, non disponible pour les utilisateurs gratuits )
L'API WebSocket est une interface API de protocole HTTP commune et universelle qui prend en charge divers appels de langage, tels que : Button Wizard, Yi Language, C++, Python, Html, Vue, Node.js, etc. . .
-
Adresse API WebSocket de screencasting extrême : ws://127.0.0.1:33332
-
Test en ligne WebSocket : https://wstool.js.org/
-
Démo HTML :https://drive.google.com/file/d/1p1WUy7iI2LNRvwm9nQefcowmE9XgMXPp/view?usp=sharing
Obtenez toutes les informations sur l'appareil
demander:
{ "action":"list" }
réponse:
{ "StatusCode": 200, "result": [ { "deviceId": "ga7d65ylnj6xinhm", "name": "ga7d65ylnj6xinhm", "no": 1 }, { "deviceId": "VBJDU18B14001987", "name": "VBJDU18B14001987", "no": 24 } ] }
capture d'écran
demander:
{ "action": "screen", "comm": { "deviceIds": "all", "savePath": "d:/quickmirror", "onlyDeviceName": 1 } }
- deviceIds :
"all"signifie tous les appareils, vous pouvez également spécifier l'appareil en passant un identifiant de périphérique séparé par des virgules, tel que"ga7d65ylnj6xinhm,VBJDU18B14001987" -
onlyDeviceName : s'il faut utiliser directement le numéro de série de l'appareil comme nom de fichier de capture d'écran
- 1 signifie que le nom du fichier de capture d'écran contient uniquement le numéro de série de l'appareil (par exemple,
ga7d65ylnj6xinhm.png) - 0 signifie que le nom du fichier de capture d'écran inclut le numéro de série de l'appareil et l'heure de la capture d'écran (par exemple,
1_ga7d65ylnj6xinhm_20240707_114500_096.png)
- 1 signifie que le nom du fichier de capture d'écran contient uniquement le numéro de série de l'appareil (par exemple,
- Remarque : S'il s'agit d'une connexion sans fil, les
:et.dans le numéro de série de l'appareil seront remplacés par_(par exemple, le nom du fichier de capture d'écran de l'appareil192.168.2.109:5555est1_192_168_2_109_5555_20240707_114919_656.png).
réponse:
{ "StatusCode": 200, "result": "OK" }
contrôle de l'écran
demander:
{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "0", "x": "0.5", "y": "0.5", "endx": "0", "endy": "0", "delta": "0" } }
- deviceIds :
"all"signifie tous les appareils, vous pouvez également spécifier l'appareil en passant un identifiant de périphérique séparé par des virgules, tel que"ga7d65ylnj6xinhm,VBJDU18B14001987" - masque : Type d'événement : 0 pression, 1 déplacement, 2 relâchements, 3 bouton droit de la souris (retour), 4 roues vers le haut, 5 roues vers le bas, 6 glisser vers le haut, 7 glisser vers le bas, 8 glisser vers la gauche, 9 glisser vers la droite
- x, y : coordonnées de l'événement, pourcentage de réussite, la plage est de 0 à 1
- endx, endy : coordonnées de fin. Seuls les événements coulissants vers le haut, le bas, la gauche et la droite nécessitent ces deux paramètres.
- delta : l'amplitude de l'événement de roue, la plage est un entier supérieur à 0. Plus la valeur est grande, plus la plage de roulement de la roue est grande. Ce paramètre est requis uniquement pour les événements de roue, et n'a pas besoin d'être transmis pour les autres. événements.
réponse:
{ "StatusCode": 200, "result": "OK" }
Exemple:
Faites glisser l'écran vers le haut
//先执行按下mask=0 x=0.5 y=0.5 从中间位置开始{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "0", "x": "0.5", "y": "0.5", "endx": "0", "endy": "0", "delta": "0" } } //执行移动mask=1 y移动到0.2位置松开前可执行多个移动就会变成拖动{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "1", "x": "0.5", "y": "0.2", "endx": "0", "endy": "0", "delta": "0" } } //最后松开mask=2 xy 传最后移动到的位置{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "2", "x": "0.5", "y": "0.2", "endx": "0", "endy": "0", "delta": "0" } }
Obtenir le contenu du presse-papiers
demander:
{ "action": "getclipboard", "comm": { "deviceIds": "8318fc66" } }
- deviceIds : cette commande ne prend pas en charge plusieurs identifiants de périphérique de téléphone mobile
réponse:
{ "StatusCode": 200, "result": "剪切板测试" }
Envoyer au presse-papier
demander:
{ "action": "writeclipboard", "comm": { "deviceIds": "all", "content": "Hi,QuickMirror" } }
- deviceIds :
"all"signifie tous les appareils, vous pouvez également spécifier l'appareil en passant un identifiant de périphérique séparé par des virgules, tel que"ga7d65ylnj6xinhm,VBJDU18B14001987"
réponse:
{ "StatusCode": 200, "result": "OK" }
Exécuter la commande ADB
demander:
{ "action": "adb", "comm": { "command": "am start -a android.intent.action.VIEW -d https://blog.csdn.net/rankun1/article/details/87970523", "deviceIds": "ga7d65ylnj6xinhm" } }
- deviceIds :
"all"signifie tous les appareils, vous pouvez également spécifier l'appareil en passant un identifiant de périphérique séparé par des virgules, tel que"ga7d65ylnj6xinhm,VBJDU18B14001987"
réponse:
{ "StatusCode": 200, "result": { "ga7d65ylnj6xinhm": [ "Starting: Intent { act=android.intent.action.VIEW dat=https://www.aa.app/... }" ] } }