1.封装一个视频播放的 UIView 在AppDelegate的didFinishLaunchingWithOptions方法中 添加到kWindow
//启动视频
let launchView = LaunchAnimationView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight))
kWindow.addSubview(launchView)
//layer其实是三维空间的,而不是简单的二维,z轴的position初始值都是0 所以z轴的值越大,表示在图层的越上方
launchView.layer.zPosition = 10088
2.封装的View 中的代码
//背景图
lazy var bgImgView: UIImageView = {
let view = UIImageView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight))
view.image = UIImage(named: "vb_start_img")
return view
}()
var timer:Timer?
override init(frame: CGRect) {
super.init(frame: frame)
config()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func config() {
addSubview(bgImgView)
//音频播放
Utilstool.play(name: "welcome_music",type: "caf")
//视频播放
let path = Bundle.main.path(forResource: "welcome_video", ofType: "mp4")
if let filePath = path {
let url = URL(fileURLWithPath: filePath)
let item = AVPlayerItem(url: url)
let player = AVPlayer(playerItem: item)
let layer = AVPlayerLayer(player: player)
//为了去除边线
//使playerLayer光栅化(即位图化),关闭了图层的blending。
layer.shouldRasterize = true
//显式指定光栅化的范围,这样能保证视频的显示质量,不然容易出现视频质量
layer.rasterizationScale = UIScreen.main.scale
layer.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight)
layer.videoGravity = .resizeAspect
self.layer.addSublayer(layer)
player.play()
var timeCount = 0
//播放时间 到了 移除控件
timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: {
t in
timeCount += 1
if timeCount >= 4 {
self.removeFromSuperview()
self.timer!.invalidate()
self.timer = nil
}
print(t)
})
}
}
记得点赞关注