如何使用AVPlayer镜像(翻转)视频播放?

时间:2019-01-12 11:49:36

标签: swift avplayer mirroring avplayerlayer

我想使用AVPlayer镜像(翻转)视频播放。 像:MirrorTube:-https://chrome.google.com/webstore/detail/mirrortube/olomckflnlligkboahmaihmeaffjdbfm/related?hl=en

我想实现相同的功能。

我试图更改CGAffineTransform,但是它不能正常工作。

谢谢!

1 个答案:

答案 0 :(得分:2)

以下是使用CGAffineTransform垂直和水平翻转播放器的示例:

PlayerView

import AVKit

class PlayerView: UIView {
    var player: AVPlayer? {
        get {
            return playerLayer.player
        }
        set {
            playerLayer.player = newValue
        }
    }

    var playerLayer: AVPlayerLayer {
        return layer as! AVPlayerLayer
    }

    // Override UIView property
    override static var layerClass: AnyClass {
        return AVPlayerLayer.self
    }
}

使用xib / storyboard中定义的playerView的ViewController

@IBOutlet var playerView: PlayerView!

@IBAction func flipVerticallyBarButtonItemTouched(_ sender: UIBarButtonItem) {
           UIView.animate(withDuration: 0.2) { [unowned self] in
               self.playerView.transform = self.playerView.transform.concatenating(CGAffineTransform(scaleX: 1, y: -1))
           }
       }
@IBAction func flipHorizontallyBarButtonItemTouched(_ sender: UIBarButtonItem) {
           UIView.animate(withDuration: 0.2) { [unowned self] in
            self.playerView.transform = self.playerView.transform.concatenating(CGAffineTransform(scaleX: -1, y: 1))
           }
}