设备1
设备2
设备1正在将视频馈送流式传输到设备2。当我在视频层上方的视频容器视图层的顶部绘制一条线时,我想在与视频相关的同一位置的第二个设备上重新绘制这条线。通过显示的红色背景来自包含视频层的视图。视频层的contentsGravity设置为.rezeAspectFill。
我试图转换点并重新绘制线,但它被关闭了。
var targetCoord = CGPoint() targetCoord.x = originCoord.x / originScreenSize.width * targetScreenSize.width targetCoord.y = originCoord.y / originScreenSize.height * targetScreenSize.height
如何考虑顶部间隙和侧面间隙(红色区域)的差异?将形状层添加到缓冲区并发送到其他设备是不可行的,因为这很慢,而且绘图需要双向进行。我很难理解它,如果有任何帮助,我将不胜感激!
首先,我需要通过使用来消除两个视图上的红色区域 AVMakeRect(aspectRatio:insideRect) 以获得适合视频的rect,并设置包含视频层的视图的帧。这样,点将完全对应。
AVMakeRect(aspectRatio:insideRect)
我对转换有正确的想法,但我使用了错误的宽度和高度值。不要使用屏幕大小,而是使用包含视频层的视图的大小。
var targetCoord = CGPoint() targetCoord.x = originCoord.x / sourceViewSize.width * targetViewSize.width targetCoord.y = originCoord.y / sourceViewSize.height * targetViewSize.height