API 参考

Screen Mirror

将设备屏幕镜像到 web UI,并将触摸手势分发回设备。控制输入需要 PlainApp 辅助功能服务。

类型定义

bash
type ScreenMirrorQuality {
  mode: ScreenMirrorMode!       # SMOOTH (720p) | HD (1080p)
  resolution: Int!
}

type ScreenMirrorVideoCodec {
  # Hardware/software video codec name used by the active mirror session.
  # Platform-dependent; see PlainApp source for the full list.
}

enum ScreenMirrorMode {
  SMOOTH
  HD
}

enum ScreenMirrorControlAction {
  CLICK
  LONG_PRESS
  SCROLL
  SWIPE
  TEXT
  BACK
  HOME
  RECENT
  POWER_DIALOG
  VOLUME_UP
  VOLUME_DOWN
  NOTIFICATIONS
  QUICK_SETTINGS
  LOCK_SCREEN
  SCREENSHOT
}

input ScreenMirrorControlInput {
  action: ScreenMirrorControlAction!
  x: Float
  y: Float
  x2: Float
  y2: Float
  text: String
}

操作

query

screenMirrorState

当屏幕镜像会话正在运行时返回 true。

bash
query GetScreenMirrorState {
  screenMirrorState
}
query

screenMirrorVideoCodec

获取当前/上次镜像会话使用的视频编解码器。

bash
query GetScreenMirrorVideoCodec {
  screenMirrorVideoCodec { name }
}
query

screenMirrorControlEnabled

当 PlainApp 辅助功能服务已启用且可以分发手势时返回 true。

bash
query GetScreenMirrorControlEnabled {
  screenMirrorControlEnabled
}
query

screenMirrorQuality

获取当前镜像质量预设。

bash
query GetScreenMirrorQuality {
  screenMirrorQuality { mode resolution }
}
mutation

startScreenMirror

启动屏幕镜像会话。传入 audio=true 可同时流式传输设备音频(需要 RECORD_AUDIO 权限)。

bash
mutation StartScreenMirror($audio: Boolean!) {
  startScreenMirror(audio: $audio)
}
mutation

requestScreenMirrorAudio

请求屏幕镜像音频的麦克风权限。如果已授予则返回 true,否则返回 false(并触发权限对话框)。

bash
mutation RequestScreenMirrorAudio {
  requestScreenMirrorAudio
}
mutation

stopScreenMirror

停止活动的屏幕镜像会话。

bash
mutation StopScreenMirror {
  stopScreenMirror
}
mutation

updateScreenMirrorQuality

切换镜像质量预设。SMOOTH 目标为 720p,HD 目标为 1080p。

bash
mutation UpdateScreenMirrorQuality($mode: ScreenMirrorMode!) {
  updateScreenMirrorQuality(mode: $mode)
}
mutation

sendScreenMirrorControl

向设备分发触摸手势或按键事件。需要启用 PlainApp 辅助功能服务。

bash
mutation SendScreenMirrorControl($input: ScreenMirrorControlInput!) {
  sendScreenMirrorControl(input: $input)
}