API de duplicación de pantalla extrema
Extreme Screen Mirroring utiliza WebSocket como API para proporcionar capacidades de interfaz ( solo se puede usar después de iniciar sesión en la cuenta, no está disponible para usuarios gratuitos )
WebSocket API es una interfaz API de protocolo HTTP común y universal que admite llamadas en varios idiomas, como: Button Wizard, Easy Language, C++, Python, Html, Vue, Node.js, etc. . .
-
Dirección API WebSocket de screencasting extremo: ws://127.0.0.1:33332
-
Prueba en línea de WebSocket: https://wstool.js.org/
-
Demostración HTML: https://drive.google.com/file/d/1p1WUy7iI2LNRvwm9nQefcowmE9XgMXPp/view?usp=sharing
Obtener toda la información del dispositivo
preguntar:
{ "action":"list" }
respuesta:
{ "StatusCode": 200, "result": [ { "deviceId": "ga7d65ylnj6xinhm", "name": "ga7d65ylnj6xinhm", "no": 1 }, { "deviceId": "VBJDU18B14001987", "name": "VBJDU18B14001987", "no": 24 } ] }
captura de pantalla
preguntar:
{ "action": "screen", "comm": { "deviceIds": "all", "savePath": "d:/quickmirror", "onlyDeviceName": 1 } }
- DeviceIds:
"all"significa todos los dispositivos; también puede especificar el dispositivo pasando el ID de dispositivo separado por comas, como"ga7d65ylnj6xinhm,VBJDU18B14001987" -
onlyDeviceName: si se debe utilizar directamente el número de serie del dispositivo como nombre del archivo de captura de pantalla
- 1 significa que el nombre del archivo de captura de pantalla solo tiene el número de serie del dispositivo (por ejemplo,
ga7d65ylnj6xinhm.png). - 0 significa que el nombre del archivo de captura de pantalla incluye el número de serie del dispositivo y la hora de la captura de pantalla (por ejemplo,
1_ga7d65ylnj6xinhm_20240707_114500_096.png).
- 1 significa que el nombre del archivo de captura de pantalla solo tiene el número de serie del dispositivo (por ejemplo,
- Nota: Si se trata de una conexión inalámbrica,
:y.en el número de serie del dispositivo se reemplazarán por_(por ejemplo, el nombre del archivo de captura de pantalla del dispositivo192.168.2.109:5555es1_192_168_2_109_5555_20240707_114919_656.png).
respuesta:
{ "StatusCode": 200, "result": "OK" }
control de pantalla
preguntar:
{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "0", "x": "0.5", "y": "0.5", "endx": "0", "endy": "0", "delta": "0" } }
- DeviceIds:
"all"significa todos los dispositivos; también puede especificar el dispositivo pasando el ID de dispositivo separado por comas, como"ga7d65ylnj6xinhm,VBJDU18B14001987" - máscara: Tipo de evento: 0 presionar, 1 mover, 2 soltar, 3 botón derecho del mouse (regresar), 4 rueda arriba, 5 rueda abajo, 6 deslizar hacia arriba, 7 deslizar hacia abajo, 8 deslizar hacia la izquierda, 9 deslizar hacia la derecha
- x, y: coordenadas del evento, porcentaje de aprobación, el rango es 0-1
- endx, endy: coordenadas finales Solo los eventos deslizantes hacia arriba, abajo, izquierda y derecha requieren estos dos parámetros. No es necesario pasar otros eventos.
- delta: la amplitud del evento de la rueda, el rango es un número entero mayor que 0. Cuanto mayor sea el valor, mayor será el rango de rodamiento de la rueda. Este parámetro solo es necesario para los eventos de la rueda y no es necesario pasarlo para otros. eventos.
respuesta:
{ "StatusCode": 200, "result": "OK" }
Ejemplo:
Desliza la pantalla hacia arriba
//先执行按下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" } }
Obtener el contenido del portapapeles
preguntar:
{ "action": "getclipboard", "comm": { "deviceIds": "8318fc66" } }
- DeviceIds: este comando no admite varios DeviceIds de teléfonos móviles.
respuesta:
{ "StatusCode": 200, "result": "剪切板测试" }
Enviar al portapapeles
preguntar:
{ "action": "writeclipboard", "comm": { "deviceIds": "all", "content": "Hi,QuickMirror" } }
- DeviceIds:
"all"significa todos los dispositivos; también puede especificar el dispositivo pasando el ID de dispositivo separado por comas, como"ga7d65ylnj6xinhm,VBJDU18B14001987"
respuesta:
{ "StatusCode": 200, "result": "OK" }
Ejecutar comando ADB
preguntar:
{ "action": "adb", "comm": { "command": "am start -a android.intent.action.VIEW -d https://blog.csdn.net/rankun1/article/details/87970523", "deviceIds": "ga7d65ylnj6xinhm" } }
- DeviceIds:
"all"significa todos los dispositivos; también puede especificar el dispositivo pasando el ID de dispositivo separado por comas, como"ga7d65ylnj6xinhm,VBJDU18B14001987"
respuesta:
{ "StatusCode": 200, "result": { "ga7d65ylnj6xinhm": [ "Starting: Intent { act=android.intent.action.VIEW dat=https://www.aa.app/... }" ] } }