客制化带背景音乐与画面淡出的launchScreen

缘由:

从UIUX那边总是会收到各种有趣的需求,这次收到的新需求为希望launch页面可以停止个几秒让指定的背景音乐播完再淡出进入主页,原本内建的launch页似乎比较难达成这个要求(假如可以请大神指导我,Thx),於是我查找了一些资讯,决定不用内建的launch页,直接建个新的viewcontroller来达成,背景音乐的部分.caf或.mp3都可以播放,这边是放进专案里,再来就是画面动画的部分可以限制需要几秒的动画,以搭配音乐共进退,来完成这个需求

实作:

首先,因为需要播放音乐须先引用多媒体库
import AVFoundation
然後因为是伪launch页,所以在viewDidLoad的地方就要先设定好音乐,要在此检查网路状态也是可以的
先建立播放器的实体
let player = AVPlayer()
然後抓取放在专案里的音乐档

override func viewDidLoad() {
    super.viewDidLoad()
    let fileUrl = Bundle.main.url(forResource: "launch", withExtension: "mp3")!
    let playerItem = AVPlayerItem(url: fileUrl)
    player.replaceCurrentItem(with: playerItem)
}

等到viewDidAppear时要同时出现画面与音乐
确认一下背景音乐的秒数决定动画要运行的时间
因为要淡出画面所以设定了self.view.alpha = 0
淡出後的处理是全萤幕跳转进另一个页面
期间伴随着背景音乐的播放

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        UIView.animate(withDuration: 3, delay: 3, options: .curveEaseInOut, animations: {
            self.view.alpha = 0
        }) { (finished) in
            let storyBoard = UIStoryboard.init(name: "Main", bundle: nil)
            if let vc = storyBoard.instantiateViewController(withIdentifier: "MainView") as? MainViewController {
                vc.modalPresentationStyle = .fullScreen
                self.present(vc, animated: true, completion: nil)
            }
        }
        self.player.play()
}

<<:  DAY2-必先利其器

>>:  Day1 - Powershell 入门之开始

NETGEAR WIFI EXTENDER SETUP

When we talk of Netgear WiFi Extender Setup , our ...

Apple Developer 凭证与Provisioning Profile更新

App的效期一直是App开发者必须要面对的问题之一,来看看我做的小笔记~~ Apple开发者帐号登入...

Day-20 : devise 安装 part 1

devise是一套使用者认证(Authentication)套件,是Rails社群中最广为使用的一套...

Day 07:大人更要懂选择-BootstrapVue 部分引入

上篇透过简单的 vue add 指令就完成了 BootstrapVue 安装和引入,其引入 boot...

[Day 27] 从零开始学Python - 科学绘图Matplotlib:画着你,画不出你的骨骼

注:本文同步刊载在Medium,若习惯Medium的话亦可去那边看呦! 今天我们要来介绍的是Matp...