macOS 使用 scrcpy 实现控制和投屏 Android 手机

安装

image-20241206午後44234742

brew install scrcpy
brew install --cask android-platform-tools

安装之后,android手机启用“开发者选项”和“USB调试”之后,就可以投屏到macOS上了,如下图:

image-20241206午後45810638

scrcpy --select-usb -m 1024  -b 20M --no-audio --max-fps=15 --always-on-top  --turn-screen-off

投屏命令参考

1、连接手机

通过 USB 连接,并且只有一台手机的时候:

scrcpy --select-usb

通过 WiFi 连接,并且只有一台手机的时候:

scrcpy --select-tcpip

也可以指定 IP 地址和端口:

scrcpy --select-tcpip=http://192.168.1.1:5555/

2、设置投屏分辨率

分辨率设置稍微小一点,可以提高性能,使投屏更加流畅。

scrcpy -m 1024

3、设置比特率

比特率设置高一点,视频会更加流畅一点,默认的 8Mbps。

scrcpy -b 20M

4、设置帧率

scrcpy --max-fps=15

5、设置编码格式

编码格式有三种,分别是 h264(默认格式)、h265 和 av1,h265 可以提高视频质量,h264 可以提供更低的延迟,av1 格式目前在手机上还不是很普遍。

scrcpy --video-codec=h264

6、只投屏声音,不投图像

scrcpy --no-video

7、只投图像,不投声音

scrcpy --no-audio

8、获取麦克风的声音

默认情况下,投屏的是手机输出的声音,我们要可以投屏获取麦克风的声音。

scrcpy --audio-source=mic

9、录制屏幕

scrcpy -r record-file.mp4

10、投屏窗口置顶

scrcpy --always-on-top

11、投屏时关闭手机屏幕

scrcpy --turn-screen-off

更多的操作方式,可以查询 scrcpy 的官方文档。

直接操作命令/ADB 命令

一个简单的划屏操作:

#!/bin/bash

# 循环滑动次数
for i in {1..10}; do
    echo "滑动第 $i 次"
    adb shell input swipe 500 1500 500 500 300
    sleep 1  # 每次滑动间隔 1 秒
done

随机划屏:

#!/bin/bash

for i in {1..10}; do
    x1=$((RANDOM % 1080))  # 随机宽度,假设屏幕宽为 1080px
    x2=$((RANDOM % 1080))
    y1=$((RANDOM % 1920 + 1000))  # 假设屏幕高为 1920px,随机滑动大部分区域
    y2=$((RANDOM % 1000))
    duration=$((RANDOM % 200 + 200))  # 随机滑动时间 200ms 到 400ms

    echo "滑动第 $i 次: 从 ($x1, $y1) 到 ($x2, $y2),持续 $duration 毫秒"
    adb shell input swipe $x1 $y1 $x2 $y2 $duration
    sleep 1
done

参考资料


在 Chrome 中强制启用暗色模式 制造消费者 摘抄