[Genymobile/scrcpy]分辨率超过1920X1080就会出现这个问题

2024-02-22 292 views
1

C:\Users\ai>adb connect 192.168.1.28:5555 已连接到 192.168.1.28:5555 C:\Users\ai>scrcpy INFO: scrcpy 1.16 https://github.com/Genymobile/scrcpy D:\scrcpy- win64-v1.16\scrcpy-server: 1...pped。3.3 MB/s(0.010 秒内 33622 字节)[服务器] 信息:设备:OnePlus HD1910 (Android 7.1.2) [服务器] 错误:线程 Thread[main,5,main] java.lang.IllegalStateException 在 android 上出现异常。 media.MediaCodec.native_dequeueOutputBuffer(本机方法)位于 android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2570)位于 com.genymobile.scrcpy.ScreenEncoder.encode(ScreenEncoder.java:108)位于 com.genymobile.scrcpy.ScreenEncoder。 com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:5 5) 处的internalStreamScreen(ScreenEncode r.java:89) com.genymobile.scrcpy.Server.scrcpy(Server.java:76) 处的com.genymobile.scrcpy .Server.main(Server.java:225) 位于 com.android.internal.os.RuntimeInit.nativeFinishInit(本机方法) 位于 com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262) 信息:渲染器: direct3d INFO:初始纹理:2560x1080 WARN:设备断开连接按任意键继续...解析超过1920X1080就会出现这个问题;似乎是android代码中出现Android.os.NetworkOnMainThreadException的错误提示

原因:不允许在主线程中进行网络访问解决办法:将网络访问的操作单独放到一个线程中new Thread(){
@Override
public void run()
{
// 把网络访问的代码放在这里
}
} 。开始(); 我也不懂,我是用逍遥模拟器测试的,分辨率调的2560X1080就报错,调1920X1080就没有问题,我希望彻底解决这个问题而不是降低分辨率来解决,谢谢

回答

8

非常抱歉,我不会说英语。我不敢用翻译软件和你交流。恐怕翻译不准确。我真诚地希望您能解决这个问题。感觉像是 scrvpy-server.jar 的问题。ERROR: Exception on thread Thread[main,5,main] 不允许主线程中的网络访问将网络访问操作单独放到一个线程中,请仔细查看谢谢

6

当分辨率超过 1920x1080 时会出现此问题

我使用模拟器进行测试,分辨率为2560x1080时报告错误。

当分辨率为 1920x1080 时,这不是问题。我希望你能解决这个问题,而不是通过降低分辨率来解决,谢谢。

我猜OP随机用谷歌搜索了这个问题,这就是结果之一。

2

当 Android 应用程序的主线程上存在 I/O 并且启用了严格模式时,NetworkOnMainThreadException 是一个众所周知的异常。

Scrcpy服务器不是Android应用程序,Android端没有“UI”,因此主线程上的I/O是可以的。

在我测试过的所有设备上,这在 scrcpy 上从来都不是问题。你真的进入NetworkOnMainThreadException了 scrcpy 吗?我怀疑情况确实如此。

5

我没有什么好主意。我希望你能阅读我写的想法。你好,程序员们。你们可以开发Android应用程序和ipad版本吗?因为scrcpy的投屏延迟确实很小,比Android的要好。画面速度很快,还支持反向操作。这样我就可以把手机投射到平板电脑和Android TV上。这样我就不会再习惯平板电脑和手机之间同步文件,用平板电脑来操作移动办公了。不会因为平板性能不够而卡住,因为程序运行在手机中,实现方法,手机连接无线路由器,手机使用usb线打开adb无线连接,然后启动平板连接手机实现安卓投屏 如果投屏到ipad上,打开全屏模式,ipad就变成安卓系统了,可能我说的比较乱,谢谢

6

然后启动平板并连接手机即可实现Android投屏。如果将屏幕投射到ipad上,当开启全屏模式时,ipad就变成了Android系统。也许我说的很乱,谢谢。