diff --git a/client-electron/src/layouts/MainLayout.tsx b/client-electron/src/layouts/MainLayout.tsx
index 457192f..62e46a8 100644
--- a/client-electron/src/layouts/MainLayout.tsx
+++ b/client-electron/src/layouts/MainLayout.tsx
@@ -33,7 +33,7 @@ const MainLayout = () => {
-
+
diff --git a/client-electron/src/pages/Android.tsx b/client-electron/src/pages/Android.tsx
index 2a6a0e2..c641641 100644
--- a/client-electron/src/pages/Android.tsx
+++ b/client-electron/src/pages/Android.tsx
@@ -4,11 +4,11 @@ import AdbWebCredentialStore from '@yume-chan/adb-credential-web'
import { Adb, AdbDaemonTransport } from '@yume-chan/adb'
import useAdb from '../hooks/useAdb'
import type { AdbScrcpyVideoStream } from '@yume-chan/adb-scrcpy'
-import { AdbScrcpyClient, AdbScrcpyOptions2_1 } from '@yume-chan/adb-scrcpy'
+import { AdbScrcpyClient, AdbScrcpyOptions1_22 } from '@yume-chan/adb-scrcpy'
import { WebCodecsDecoder } from '@yume-chan/scrcpy-decoder-webcodecs'
import {
ScrcpyLogLevel1_18,
- ScrcpyOptions2_2,
+ ScrcpyOptions1_25,
ScrcpyVideoCodecId
} from '@yume-chan/scrcpy'
import { useCallback, useRef, useState } from 'react'
@@ -78,7 +78,7 @@ const AndroidPage: React.FC = () => {
async function scrcpyConnect() {
const server: ArrayBuffer = await fetch(
- new URL('../scrcpy/scrcpy_server_v2.2', import.meta.url)
+ new URL('../scrcpy/scrcpy_server_v1.25', import.meta.url)
).then(res => res.arrayBuffer())
await AdbScrcpyClient.pushServer(
@@ -92,7 +92,7 @@ const AndroidPage: React.FC = () => {
)
const res = await adb!.subprocess.spawn(
- 'CLASSPATH=/data/local/tmp/scrcpy-server.jar app_process / com.genymobile.scrcpy.Server 2.2'
+ 'CLASSPATH=/data/local/tmp/scrcpy-server.jar app_process / com.genymobile.scrcpy.Server 1.25'
)
res.stdout.pipeThrough(new DecodeUtf8Stream()).pipeTo(
@@ -103,25 +103,25 @@ const AndroidPage: React.FC = () => {
})
)
- const scrcpyOption = new ScrcpyOptions2_2({
- audio: false,
+ const scrcpyOption = new ScrcpyOptions1_25({
maxFps: 60,
- control: false,
- video: true,
+ control: true,
logLevel: ScrcpyLogLevel1_18.Debug,
- stayAwake: true,
- cleanup: true
+ stayAwake: true
})
const _client = await AdbScrcpyClient.start(
adb!,
'/data/local/tmp/scrcpy-server.jar',
- '2.2',
- new AdbScrcpyOptions2_1(scrcpyOption)
+ '1.25',
+ new AdbScrcpyOptions1_22(scrcpyOption)
)
const videoStream: AdbScrcpyVideoStream | undefined =
await _client?.videoStream
const _decoder = new WebCodecsDecoder(ScrcpyVideoCodecId.H264)
+
+ _decoder.renderer.style.maxHeight = 'inherit'
+
screenRef.current?.appendChild(_decoder.renderer)
videoStream?.stream.pipeTo(_decoder.writable)
setDecoder(_decoder)
@@ -138,6 +138,9 @@ const AndroidPage: React.FC = () => {
function scrcpyDisconnect() {
decoder?.dispose()
client?.close()
+ if (decoder && screenRef.current) {
+ screenRef.current.removeChild(decoder.renderer)
+ }
setClient(undefined)
setDecoder(undefined)
}
@@ -147,8 +150,9 @@ const AndroidPage: React.FC = () => {
}
return (
- <>
-
+
+
+
{adb && device ? device.name : ''}
-
- >
+
)
}
diff --git a/client-electron/src/scrcpy/scrcpy_server_v1.25 b/client-electron/src/scrcpy/scrcpy_server_v1.25
new file mode 100644
index 0000000..5f55d0a
Binary files /dev/null and b/client-electron/src/scrcpy/scrcpy_server_v1.25 differ