我创建了一个应用程序,它使用 swift 加载并具有登录/注册页面等。目前我有一张图片作为背景,但想添加代码,以便在后台播放 gif/mov,就像在 vine 或 instagram 等应用程序中一样。
如何将视频集成到我当前的代码中?我对此也很陌生,所以一直在关注教程。另外,如果有人知道如何删除解析 Logo ,那也会有所帮助。
视频出现在我的 Storyboard上的 UI 前面!我怎样才能让它们出现在背景 GIF 的前面?
下面是我目前拥有的登录 View Controller 代码。
import UIKit
import Foundation
class SignInViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var userName: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var errorLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let filePath = NSBundle.mainBundle().pathForResource("beachwater", ofType: "gif")
let gif = NSData(contentsOfFile: filePath!)
let webViewBG = UIWebView(frame: self.view.frame)
webViewBG.loadData(gif!, MIMEType: "image/gif", textEncodingName: "UTF-8", baseURL: NSURL(string: "")!)
webViewBG.userInteractionEnabled = false;
self.view.addSubview(webViewBG)
userName.delegate = self
password.delegate = self
}
@IBAction func signInTouched(sender: UIButton) {
let signin = SignIn(user: userName.text!, pass: password.text!)
do {
try signin.signInUser()
self.dismissViewControllerAnimated(true, completion: nil)
} catch let error as Error {
errorLabel.text = error.description
} catch {
errorLabel.text = "Sorry something went\n wrong please try again"
}
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
}
最佳答案
以下代码允许您为 View Controller 添加视频背景。
它是用 Swift
编写的,可以播放 mp4
视频文件。
对于 Swift 5
。
import AVFoundation
class VideoBackgroundController: UIViewController {
var avPlayer: AVPlayer!
var avPlayerLayer: AVPlayerLayer!
var paused: Bool = false
override func viewDidLoad() {
let theURL = Bundle.main.url(forResource:"my_video_file", withExtension: "mp4")
avPlayer = AVPlayer(url: theURL!)
avPlayerLayer = AVPlayerLayer(player: avPlayer)
avPlayerLayer.videoGravity = .resizeAspectFill
avPlayer.volume = 0
avPlayer.actionAtItemEnd = .none
avPlayerLayer.frame = view.layer.bounds
view.backgroundColor = .clear
view.layer.insertSublayer(avPlayerLayer, at: 0)
NotificationCenter.default.addObserver(self,
selector: #selector(playerItemDidReachEnd(notification:)),
name: .AVPlayerItemDidPlayToEndTime,
object: avPlayer.currentItem)
}
@objc func playerItemDidReachEnd(notification: Notification) {
let p: AVPlayerItem = notification.object as! AVPlayerItem
p.seek(to: .zero)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
avPlayer.play()
paused = false
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
avPlayer.pause()
paused = true
}
}
关于ios - 为 Instagram 和 Vine 等 iOS 应用程序注册添加视频背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32888378/