第五篇Uber启动视频播放

Posted 久冬不雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五篇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) } }

 

以上是关于第五篇Uber启动视频播放的主要内容,如果未能解决你的问题,请参考以下文章

JDK11 | 第五篇 : 启动单个Java源代码文件的程序

第五篇 scrapy安装及目录结构,启动spider项目

使用快速视频自动启动视频

Linux笔记第五篇安装配置MariaDB

第五篇 openvslam建图与优化模块梳理

如何在片段中播放视频