Swift:如何在我的 AVPlayerLayer 顶部添加一个 image/text 使其成为视频的一部分?
Swift: How do I add an image/text on top of my AVPlayerLayer for it to be a part of the video?
我真的很难让图像或文本真正成为我视频的一部分,类似于 Snapchats 添加 text/stickers 功能。我不希望它只是位于我的视频之上,而是实际上位于视频本身,因此当它被保存时,它就会显示出来。任何帮助将不胜感激并标记为答案。谢谢你们。代码如下...
import UIKit
import AVFoundation
import AVKit
import Photos
class VideoViewController: UIViewController {
override var prefersStatusBarHidden: Bool { return true }
var videoURL: URL
var player: AVPlayer?
var playerLayer: AVPlayerLayer?
init(videoURL: URL) {
self.videoURL = videoURL
super.init(nibName: nil, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.keyWindow?.backgroundColor = .black
self.view.backgroundColor = .black
self.player = AVPlayer(url: videoURL)
self.playerLayer = AVPlayerLayer(player: self.player)
self.playerLayer?.frame = self.view.frame
self.playerLayer?.backgroundColor = UIColor.black.cgColor
self.view.layer.addSublayer(playerLayer!)
guard player != nil else { return }
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
player?.play()
}
我真的很难让图像或文本真正成为我视频的一部分,类似于 Snapchats 添加 text/stickers 功能。我不希望它只是位于我的视频之上,而是实际上位于视频本身,因此当它被保存时,它就会显示出来。任何帮助将不胜感激并标记为答案。谢谢你们。代码如下...
import UIKit
import AVFoundation
import AVKit
import Photos
class VideoViewController: UIViewController {
override var prefersStatusBarHidden: Bool { return true }
var videoURL: URL
var player: AVPlayer?
var playerLayer: AVPlayerLayer?
init(videoURL: URL) {
self.videoURL = videoURL
super.init(nibName: nil, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.keyWindow?.backgroundColor = .black
self.view.backgroundColor = .black
self.player = AVPlayer(url: videoURL)
self.playerLayer = AVPlayerLayer(player: self.player)
self.playerLayer?.frame = self.view.frame
self.playerLayer?.backgroundColor = UIColor.black.cgColor
self.view.layer.addSublayer(playerLayer!)
guard player != nil else { return }
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
player?.play()
}