AVPlayer 去除顶部和底部的黑条/背景(Swift)

Kin*_*nja 4 ios avplayer swift

快速提问,有人知道如何去除视频顶部和底部的黑条吗?我刚开始使用 AVPlayer,我只是在这里和那里删除代码以尝试删除黑色图层。感谢那些可以帮助我的人,谢谢!

视图控制器

import UIKit
import AVKit
import AVFoundation
private var looper: AVPlayerLooper?

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let path = Bundle.main.path(forResource: "Innie-Kiss", ofType:"mp4")
        let player = AVQueuePlayer(url: URL(fileURLWithPath: path!))
        looper = AVPlayerLooper(player: player, templateItem: AVPlayerItem(asset: AVAsset(url: URL(fileURLWithPath: path!))))
        let controller = AVPlayerViewController()
        controller.player = player
        let screenSize = UIScreen.main.bounds.size
        let videoFrame = CGRect(x: 0, y: 200, width: screenSize.width, height: (screenSize.height - 130) / 2)
        controller.view.frame = videoFrame
        self.view.addSubview(controller.view)
        player.play()
    }

}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

joh*_*lem 5

您需要设置 AVLayer 的 videoGravity。默认值.resizeAspect将保留在顶部/底部或左侧/右侧带有黑条的纵横比。你想要的是.resize

您需要设置 videoGravity 的 AVLayer 是您的 AVPlayer 的图层属性。

有关更多信息,请参阅:https : //developer.apple.com/documentation/avfoundation/avplayerlayer/1388915-videogravity