[英]How to add cornerRadius to AVPlayerViewController in Swift?
我正在研究用Swift
编写的视频播放器应用程序。
我的问题是我应该使AVPlayerViewController
角落曲线。 但我想只使用AVPlayerViewController
而不是任何其他类。
我现在做了什么:
fileprivate func setupPlayer() {
let player = AVPlayer(url: videoURL)
let playerViewController = AVPlayerViewController()
playerViewController.view.frame = CGRect.init(x: xPosition,
y: yPosition,
width: 200,
height: 100)
playerViewController.player = player
self.addChild(playerViewController)
self.view.addSubview(playerViewController.view)
playerViewController.didMove(toParent: self)
playerViewController.videoGravity = AVLayerVideoGravity.init(rawValue: "")
playerViewController.view.backgroundColor = UIColor(displayP3Red: 0/255, green: 0/255, blue: 0/255, alpha: 0)
playerViewController.view.layer.cornerRadius = 20
playerViewController.contentOverlayView?.isHidden = true
playerViewController.contentOverlayView?.alpha = 0
}
但我希望有一些像appstore中那样的曲线:
试试这个。
import UIKit import AVKit class ViewController: UIViewController { var videoController:AVPlayerViewController! var player:AVPlayer! var url:URL! override func viewDidLoad() { super.viewDidLoad() let path:String=Bundle.main.path(forResource: "PinkLake", ofType: "mp4")! url=URL(fileURLWithPath: path) player=AVPlayer(url: url) videoController=AVPlayerViewController() videoController.player=player; let viewVideo=UIView() viewVideo.frame.origin.x=0; viewVideo.frame.origin.y=50; viewVideo.frame.size.width=200; viewVideo.frame.size.height=200; videoController.view.frame=viewVideo.frame //declare tempView var tempView = UIView(frame: videoController.view.frame) tempView=videoController.view; tempView.layer.cornerRadius=50; videoController.view=tempView; self.view.addSubview(viewVideo) viewVideo.addSubview(videoController.view) self.view.backgroundColor=UIColor.yellow player.play() } }
AVPlayerLayer没问题。
import UIKit
import AVKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if let url = URL(string: "SOMEVIDEOURL.mp4") {
let player = AVPlayer(url: url)
let layer = AVPlayerLayer(player: player)
layer.frame = CGRect(x: 100, y: 100, width: 200, height: 100)
view.layer.addSublayer(layer)
layer.cornerRadius = 20
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.