一日躺在床上玩手机,忽然想到,何必看手机这么小的屏幕,旁边不就是一个大电视么,投屏到电视上视频看岂不美哉。
可再一想,那只是一台普通的电视(并非小米电视那样的网络电视),没有WIFI和网口,也没有外接电视盒,可咋投屏呢?
于是我把目光投向了它旁边的电脑。。。因为显卡的HDMI口连接了电视,相当于是电脑的第二台显示器,平时用于看大片的,那么把手机投屏到电脑上,就可以用电脑显示器看视频了,再把播放窗口拖动到电视屏幕,于是就借花献佛,实现了手机投屏到电视的目标。
网络拓扑:
台式机插入USB无线网卡(不要求通过该网卡上网,详见下文),显卡的HDMI口连接电视机。
如果是笔记本电脑,由于自带无线网卡,直连电视就可以:
说干就干!经过一番百度和尝试就有了本文,原来WIN10自带了安卓移动设备投屏到电脑功能。我们可以用HDMI线连接笔记本和电视,手机上应用就可以投影到笔记本,再借由笔记本转移到电视上。
在实现过程中参考了网上的文章,再加上自己归纳整理的心得体会。所以搬运了一部分内容,在此感谢这些文章的作者。
本文介绍2种投屏方法:操作系统自带投屏,以及投屏软件Scrcpy-GUI。
其实WIN10/11已经内置了投屏功能,无需任何其他的软硬件支持,只需要电脑和手机都支持Miracast协议,当然,只要系统不过于老旧,都支持Miracast协议(万一真不支持,就只有使用第三方投屏应用或硬件)。
Scrcpy是一款来自于GITHUB的开源软件,无需ROOT就可投屏至电脑,相比Windows的纯投屏,Scrcpy能用鼠标在电脑上操作手机,还可以直接往手机输入文字。Scrcpy-GUI是国内的作者晨钟酱给Scrcpy写的图形外壳,避免了命令行操作,可以去B站找他的主页下载。
→→→→→→→→→→→→Windows投屏⬅⬅⬅⬅⬅⬅⬅⬅⬅⬅
步骤一:网络准备
因为我有台式机、笔记本、多个WIFI路由器和手机,经过一番折腾,搭建出了好几种不同的网络环境反复测试,得出了如下结论。
1、网上有资料说手机与电脑要连接同一个WIFI路由器(连接到同一个网络),实际上无此限制,可以各自连接不同的WIFI信号。但电脑端与手机端WIFI连接的频率要求一致。比如电脑连接了5GHz频率,手机就必须也连接5GHz频率,不能是2.4GHz。(优选5GHz)
2、如果是双网卡电脑(有线网卡和无线网卡),当前是通过有线网卡上网,也不影响无线投屏,只要没有禁用无线网卡。
3、与上一条相关,要求手机和电脑必须连入某个WIFI而不能空置。也就是说哪怕台式机是有线联网,其无线网卡仍然要求连接WIFI信号。至于能否通过该WIFI信号上外网并无要求。
注:对于有线/无线双网卡的电脑,先前用无线网卡连接WIFI工作,再插入网线,WIN10会自动切换到有线连接,但此时WIFI仍然处于连接状态并未断开,仍然满足投屏的网络条件。如果手动断开WIFI信号就无法投屏了。
如果到一个陌生的现场,附近没有WIFI可连(或不知道密码)却又要用到无线投屏,可以找一台第三方的手机打开热点,用作投屏的手机和电脑都连接该热点即可投屏。流量从热点走。
如果不需要上网,做热点的手机可以关闭流量,不会影响投屏。
但一台手机不能同时充当投屏和热点的角色。
4、因为是无线投屏技术,电脑与手机必须都是无线连接,也就是要求电脑端有无线网卡(手机端肯定是自带了),且两者都支持Miracast协议,WIN10及以上版本的操作系统以及非古董的手机都支持。
步骤二:在电脑上添加无线显示器
开始→设置→应用→可选功能→添加功能,添加无线显示器:
或者直接在左下角搜索栏搜索“添加可选功能”:
步骤三:判断显卡和无线网卡(WLAN)是否支持Miracast协议
按 WIN+R 快捷键运行cmd命令行窗口,输入命令 netsh wlan show drivers,看最下方的提示:
步骤四:电脑端做投屏准备
开始→设置→系统→投影到此电脑,按照下图配置,再点击“启动连接应用以投影到此电脑”:
注1:以上配置是完全开放了电脑投屏权限,任何连入WIFI的手机都可以投屏。如果要控制投屏权限,把“要求投影到这台电脑”的选项改为“每次请求连接时”,以后手机每次发起投屏都需要电脑端同意。
注2:若选项“当你同意时,部分Windows和android设备可以投影到这台电脑”被置为“所有位置可用”,WIN10会创建一个WIFI信号,名字类似于“DIRECT-7mDESKTOP-GTL4TS4msTJ”,如果不想要这个信号,把该选项置为“始终关闭(推荐)”。
注3:如果电脑设置了PIN密码,也可以把“需要PIN才能配对”改为“始终”。
此时电脑已经做好与手机连接的准备(手机能够搜索到电脑),而且电脑屏幕上出现等待连接画面:
或者另一种方法:搜索“连接”直接运行,也会出现上述画面。
步骤五:手机端操作,连接电脑
不同品牌的手机操作路径不同:
小米是点击“设置→连接与共享→投屏”。或者“设置→更多连接方式→无线显示→开启无线显示”。
华为是点击“设置→设备连接→多屏互动”。
三星是点击Smart View。
其它品牌的手机请自行寻找类似的路径。
点击之后会找到电脑的名字:
点击电脑名字,步骤四的蓝色等待画面就会变为手机画面了,声音也由电脑端播放,连接成功!(麦克仍然在手机)
经测试,一定要按顺序先走步骤四运行蓝屏等待画面,再走步骤五手机连接电脑。如果直接运行本步骤连接电脑,有时候手机能找到电脑,有时候又不能。
步骤六:排错
如果严格按照上述步骤走,手机没有发现电脑,排错过程如下:
1、重启手机和电脑,连接同频率的WIFI信号(不要求连接同一个WIFI网络名)。
2、在步骤4的蓝色屏幕上按Ctrl+S,看看是否有设备被阻止,如果有就删除,按⬅方向键返回。
3、右击桌面的此电脑→管理→设备管理器→网络适配器,确保 Microsoft Wi-Fi Direct Virtua lAdapter 没有被禁用:
4、右击桌面的此电脑→管理→服务和应用程序→服务,确保 SSDP Discovery 服务处于运行状态:
确保无线自动配置服务(wlansvc)处于运行状态:
5、网上有资料提到启用流媒体服务,但我的WIN10没有该选项,所以强调更新到最新版WIN10。
6、如果手机或电脑打开了热点,要关闭。
7、关闭防火墙。搜索“防火墙和网络保护”,找到“使用中”的网络位置,点击进入关闭防火墙:
8、为了手机投影就关闭防火墙在网上裸奔,未免风险太大了,最好是能在打开防火墙的情况下启用手机投影,为此需要增加防火墙条目。
在手机投影状态下运行任务管理器,找到“连接”进程栏,可见有2个进程:
分别在这2个进程上点右键→打开文件所在的位置,把Runtime Broker的绝对路径,以及“连接”所指向目录建立2个对应的防火墙条目,允许入站连接。
我的机器上的这2个路径分别是:
C:\Windows\SystemApps\Microsoft.PPIProjection_cw5n1h2txyewy
C:\Windows\System32\RuntimeBroker.exe
注:快速获取某个文件的绝对路径的方法是,按住SHIFT的同时右键单击文件,点“复制文件地址”:
之后一律下一步,给规则起个名字。
9、给电脑设置PIN密码,之后在步骤四指定用PIN密码配对。
10、确保当前是管理员账号,或者新建一个管理员账号并登录再试。
→→→→→→→→→→→→Scrcpy-GUI 投屏⬅⬅⬅⬅⬅⬅⬅⬅⬅⬅
Scrcpy可以做到:
● 手机的音频转发至电脑(安卓版本13及以上)
● 投屏时录音录像
● 双向复制粘贴(电脑的剪贴板文字会同步到手机剪贴板,反之亦然)
● 安卓设备作为网络摄像头(仅限于Linux)
● OTG连接
● 用电脑键盘往手机里输入中文(电脑要切换到英文输入法)
1、去B站找到“晨钟酱”的主页下载Scrcpy-GUI,解压得到32位和64位2个版本。由于Scrcpy-GUI是Scrcpy的图形外壳,建议去Scrcpy的官网 https://github.com/Genymobile/scrcpy 下载最新版的32/64位Scrcpy,将其覆盖到Scrcpy-GUI的对应32/64位目录,这样就得到了最新版的Scrcpy-GUI,可适配最新的手机。
2、下载工具包:https://dl.google.com/android/repository/platform-tools-latest-windows.zip这是谷歌官方工具包,保持最新版。把其中的4个文件覆盖到Scrcpy-GUI的32位和64位目录:
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
fastboot.exe
3、安装ADB驱动。WIN11/10/8内置了ADB驱动,不用安装。但如果你运行的精简版或老版本操作系统,抑或老手机,就需要单独安装ADB驱动,详细步骤见https://b23.tv/cDqDfEB ,本文不再赘述。
根据经验,如果发现操作系统不认手机的ADB驱动,最稳妥的方法是下载该品牌手机的官方PC端手机助手套件。以华为举例,PC端下载华为手机助手HiSuite,安装之后ADB驱动就打上了。
4、打开手机的“开发者选项”。比如华为的流程是设置→系统→关于手机→在“版本号”上连续点击7次,再进入设置→系统→开发人员选项,打开“USB调试”和“仅充电模式下允许ADB调试”。如果存在“USB调试(安全设置)”也要打开。
5、手机连接电脑。如果手机弹出“是否允许USB调试”对话框,勾选“一律允许”,再点“允许”。
6、在手机弹出框中选择“传输照片”或“传输文件”;此时设备管理器会发现新硬件,在正常情况下,PC端的ADB驱动就打上了。
7、检测手机是否连接,方法有两种:
一是运行Scrcpy_GUI_byCZ_VX.X.X.exe,点击“检测设备”会弹出“已连接设备”框,如果列出了设备ID就表明连接成功。
如果是空白则多点几次,若是软件刚刚启动,识别手机会有延迟,几次之后仍是空白则表明未连接到手机,原因是没有打上ADB驱动。
二是在该目录地址栏输入cmd回车进入命令行窗口,运行命令:adb devices
如果输出了设备ID,就表明已经安装了ADB驱动,连接手机成功:
8、点击第7步的“启动”按钮,右上角的“比特率”的数字越大图像质量越好,但太大了会卡顿;“延迟”默认为50ms,能得到平滑的动画播放效果。再次点击“启动”,电脑显示器出现手机屏幕,投屏成功:
9、以上是连接数据线的有线投屏。若要摆脱数据线实现无线投屏,需要先用数据线连接手机走完1~7步,再找到手机的IP地址,点击第7步的“无线设置”,输入端口号和址,点"开启/更换端口",就在手机上打开了该端口:
如果输入的手机IP地址正确,点“连接”,会提示无线连接到设备:
点击“启动”就可以投屏了。笔记本可以无线连接至手机,台式机需要无线网卡。
如果投屏之后手机曾经关机或重启,就需要重新走完流程,之后就可以拔下数据线。只要手机不重启,就可以随时无线投屏。
为了确保手机安全,无线投屏之后最好关闭USB调试并重启手机,下次投屏再打开USB调试。
小技巧:
列出手机支持的视频和音频编码格式
scrcpy --list-encoders
手机以4M码率,AAC音频编码,H.265视频编码传输视频至电脑,命令行照抄上图:
scrcpy -b 4M --audio-codec=aac --video-codec=h265 --video-encoder='OMX.MTK.VIDEO.ENCODER.HEVC'
OTG模式
用电脑的鼠标和键盘操作手机(电脑键盘要切换为英文输入法)
scrcpy --otg --hid-keyboard # 仅键盘
scrcpy --otg --hid-mouse # 仅鼠标
scrcpy --otg --hid-keyboard --hid-mouse # 键盘和鼠标
若要退出OTG模式,电脑键盘按ALT+F4。
更多的命令行用法见https://github.com/Genymobile/scrcpy 的说明文档。
扩展阅读:旧手机充当4G/5G路由器的几种方法 ,以及电脑通过手机蓝牙上网的方法