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)
}