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