zoukankan      html  css  js  c++  java
  • 第五篇、Uber用视频播放做启动动画

    import UIKit
    import AVFoundation
    
    class GuidePage: FxBasePage {
    
        @IBOutlet var backImageView:UIImageView?
        
        var player:AVPlayer!
        var playerItem:AVPlayerItem!
        var location:FxLocation!
        
        override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?)
        {
            super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        }
        
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
        
        convenience init ()
        {
            var nibNameOrNil = String?("GuidePage")
            
            //考虑到xib文件可能不存在或被删,故加入判断
            if NSBundle.mainBundle().pathForResource(nibNameOrNil, ofType: "nib") == nil {
                nibNameOrNil = nil
            }
            
            self.init(nibName: nibNameOrNil, bundle: nil)
        }
        
        override func viewDidLoad()
        {
            super.viewDidLoad()
            
            initPlayVideo()
            doAnimation()
        }
        
        override func didReceiveMemoryWarning()
        {
            super.didReceiveMemoryWarning()
        }
    
        func doAnimation()
        {
            var images:[UIImage]=[]
            var image:UIImage?
            var imageName:String?
            
            for var index=0; index<=67;index++ {
                imageName = "logo-" + String(format: "%03d", index)
                image = UIImage(named: imageName!)
                
                images.insert(image!, atIndex: index)
            }
            
            backImageView?.animationImages = images
            backImageView?.animationRepeatCount = 1
            backImageView?.animationDuration = 5
            
            backImageView?.startAnimating()
            
            UIView.animateWithDuration(0.7, delay:5, options: .CurveEaseOut, animations: {
                    self.backView!.alpha = 1.0
                    self.player?.play()
                }, completion: {
                    finished in
                    print("Animation End")
            })
        }
        
        func initPlayVideo ()
        {
            let path = NSBundle.mainBundle().pathForResource("welcome_video", ofType: "mp4")
            let url = NSURL.fileURLWithPath(path!)
            
            playerItem = AVPlayerItem(URL: url)
            player = AVPlayer(playerItem: playerItem)
            
            let playerLayer = AVPlayerLayer(player: player)
            
            playerLayer.frame = backView!.bounds
            playerLayer.videoGravity =  AVLayerVideoGravityResizeAspect
            
            backView!.layer.insertSublayer(playerLayer, atIndex: 0)
            backView!.alpha = 0.0
            
            NSNotificationCenter.defaultCenter().addObserver ( self,
                selector: "didFinishVideo:" ,
                name: AVPlayerItemDidPlayToEndTimeNotification ,
                object: playerItem)
        }
        
      // 播放到视频结尾之后,要重新开放播放 func didFinishVideo(sender: NSNotification ) { let item
    = sender.object as! AVPlayerItem item.seekToTime(kCMTimeZero) self.player.play() }
      // 跳转登录 @IBAction func doLogin() { location
    = FxLocation() location.startLocation() }
      // 跳转注册 @IBAction func doRegister() { let page
    = CreateAccountPage() let navPage = UINavigationController(rootViewController: page) self.presentViewController(navPage, animated: true, completion: nil) } }
  • 相关阅读:
    Hibernate记录(二)
    Hibernate记录(一)
    设计模式:依赖倒转原则(记录一)
    java ssl 使用不同的加密套件,对性能影响很大
    关于在 java 8 下开启 TLS_RSA_WITH_3DES_EDE_CBC_SHA 支持 xp ie8 tls1.0 的正常访问
    JAVA版本8u171与8u172的区别
    java 8: ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
    修改 iis 的端口号: 80 与 443
    HTTPS笔记:使用 SSLEngine 为 aioserver 服务器提供 SSL 访问支持
    总结一下:指针运算
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5880018.html
Copyright © 2011-2022 走看看