エクストリーム スクリーン ミラーリング API
Extreme Screen Mirroring は、WebSocket を API として使用してインターフェイス機能を提供します (アカウントにログインした後にのみ使用でき、無料ユーザーは利用できません)
WebSocket API は、ボタン ウィザード、Yi 言語、C++、Python、Html、Vue、Node.js などのさまざまな言語呼び出しをサポートする共通のユニバーサル HTTP プロトコル API インターフェイスです。 。 。
-
Extreme スクリーンキャスト WebSocket API アドレス: ws://127.0.0.1:33332
-
WebSocketオンラインテスト: https://wstool.js.org/
-
HTML デモ:https://drive.google.com/file/d/1p1WUy7iI2LNRvwm9nQefcowmE9XgMXPp/view?usp=sharing
すべてのデバイス情報を取得する
聞く:
{ "action":"list" }
応答:
{ "StatusCode": 200, "result": [ { "deviceId": "ga7d65ylnj6xinhm", "name": "ga7d65ylnj6xinhm", "no": 1 }, { "deviceId": "VBJDU18B14001987", "name": "VBJDU18B14001987", "no": 24 } ] }
スクリーンショット
聞く:
{ "action": "screen", "comm": { "deviceIds": "all", "savePath": "d:/quickmirror", "onlyDeviceName": 1 } }
- deviceIds:
"all"はすべてのデバイスを意味します。"ga7d65ylnj6xinhm,VBJDU18B14001987"のように、カンマ区切りの deviceId を渡してデバイスを指定することもできます。 -
onlyDeviceName: デバイスのシリアル番号をスクリーンショットのファイル名として直接使用するかどうか
- 1 は、スクリーンショット ファイル名にデバイスのシリアル番号のみが含まれていることを意味します (例:
ga7d65ylnj6xinhm.png) - 0 は、スクリーンショット ファイル名にデバイスのシリアル番号とスクリーンショット時間が含まれていることを意味します (例:
1_ga7d65ylnj6xinhm_20240707_114500_096.png)。
- 1 は、スクリーンショット ファイル名にデバイスのシリアル番号のみが含まれていることを意味します (例:
- 注: ワイヤレス接続の場合、デバイスのシリアル番号の
:と.は_に置き換えられます (たとえば、デバイス192.168.2.109:5555のスクリーンショット ファイル名は1_192_168_2_109_5555_20240707_114919_656.pngです)。
応答:
{ "StatusCode": 200, "result": "OK" }
画面制御
聞く:
{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "0", "x": "0.5", "y": "0.5", "endx": "0", "endy": "0", "delta": "0" } }
- deviceIds:
"all"はすべてのデバイスを意味します。"ga7d65ylnj6xinhm,VBJDU18B14001987"のように、カンマ区切りの deviceId を渡してデバイスを指定することもできます。 - マスク: イベント タイプ: 0 押す、1 移動、2 リリース、3 マウスの右ボタン (戻る)、4 ホイール上、5 ホイール下、6 上スライド、7 下スライド、8 左スライド、9 右スライド
- x、y: イベント座標、通過率、範囲は 0 ~ 1
- endx、endy: 終了座標。上、下、左、右のスライド イベントのみがこれらの 2 つのパラメータを必要とします。他のイベントは渡す必要はありません。
- デルタ: ホイール イベントの振幅。範囲は 0 より大きい整数です。値が大きいほど、ホイールの回転範囲が大きくなります。このパラメーターはホイール イベントにのみ必要であり、他のイベントには渡す必要はありません。イベント。
応答:
{ "StatusCode": 200, "result": "OK" }
例:
画面を上にスワイプ
//先执行按下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" } }
クリップボードの内容を取得する
聞く:
{ "action": "getclipboard", "comm": { "deviceIds": "8318fc66" } }
- deviceIds: このコマンドは複数の携帯電話の deviceId をサポートしません。
応答:
{ "StatusCode": 200, "result": "剪切板测试" }
クリップボードに送信
聞く:
{ "action": "writeclipboard", "comm": { "deviceIds": "all", "content": "Hi,QuickMirror" } }
- deviceIds:
"all"はすべてのデバイスを意味します。"ga7d65ylnj6xinhm,VBJDU18B14001987"のように、カンマ区切りの deviceId を渡してデバイスを指定することもできます。
応答:
{ "StatusCode": 200, "result": "OK" }
ADBコマンドを実行する
聞く:
{ "action": "adb", "comm": { "command": "am start -a android.intent.action.VIEW -d https://blog.csdn.net/rankun1/article/details/87970523", "deviceIds": "ga7d65ylnj6xinhm" } }
- deviceIds:
"all"はすべてのデバイスを意味します。"ga7d65ylnj6xinhm,VBJDU18B14001987"のように、カンマ区切りの deviceId を渡してデバイスを指定することもできます。
応答:
{ "StatusCode": 200, "result": { "ga7d65ylnj6xinhm": [ "Starting: Intent { act=android.intent.action.VIEW dat=https://www.aa.app/... }" ] } }