0
次のコードを使用して、CALayerを使用してビデオに画像を追加しています。しかし、私が直面している問題は、別のビデオ解像度を選択すると透かしのサイズと位置が変わることです。私はユーザーがステッカーを選択し、その場所とサイズを調整することで、ビデオに追加するスナップチャットのようなアプリケーションを作成しています。iosでビデオの画像の位置が変更される
誰も私にここで間違いを教えてもらえますか?これが適切になるように今何をすべきか?前もって感謝します!
let aLayer = CALayer()
aLayer.contents = image.cgImage
aLayer.opacity = 1.0
//sorts the layer in proper order
let videoTrack: AVAssetTrack? = videoAsset.tracks(withMediaType: AVMediaTypeVideo)[0]
let videoSize: CGSize? = videoTrack?.naturalSize
let parentLayer = CALayer()
let videoLayer = CALayer()
let videoScale : CGFloat = CGFloat((videoSize?.width)!)/CGFloat(self.containerView.frame.width)
print("sticker frame \((stickerImageView?.frame.width)! * videoScale) \((stickerImageView?.frame.height)! * videoScale)")
aLayer.frame = CGRect(x: (stickerImageView?.frame.origin.x)! * videoScale ,y: (stickerImageView?.frame.origin.y)! * videoScale , width: (stickerImageView?.frame.width)! * videoScale , height : (stickerImageView?.frame.height)! * videoScale)
parentLayer.frame = CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat((videoSize?.width)!), height: CGFloat((videoSize?.height)!))
videoLayer.frame = CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat((videoSize?.width)!), height: CGFloat((videoSize?.height)!))
parentLayer.addSublayer(videoLayer)
parentLayer.addSublayer(aLayer)
このアプローチを使用してx、幅、高さを得ることができましたが、現在はYが正しく表示されません。どうすれば助かりますか? –
@AkshaykumarMaldhure何がYであるべきですか? –
UIImageフレームyである必要があります。これは、ユーザーがビデオにどのように保持しているかを示します。 Xポジションが正しく機能している場合、Yは常に同様に画像位置を変更することができます。 –