2017-06-18 2 views
1

Je travaille sur une application iOS en utilisant Swift 3 où j'ai une vidéo en arrière-plan. Mon code fonctionnait complètement bien jusqu'à ce que le message d'erreur:swift 3 erreur: Type 'AVLayerVideoGravity' n'a pas de membre 'resizeAspectFill'

Type AVLayerVideoGravity aka (NSString) has no member resizeAspectFill

s'affiche. Je n'arrive pas à comprendre pourquoi resizeAspectFill n'est plus reconnu. Y a-t-il quelque chose qui me manque? J'ai essayé de nettoyer mon projet mais cela ne règle rien. Toute aide serait grandement appréciée :) est le code ci-dessous: (. Malheureusement, le lien redirige vers la version 4 Swift Pour voir les changements permettent Afficher API change en haut à droite)

import Foundation 
import AVFoundation 
import UIKit 

class HomeViewController: UIViewController { 
// MARK: Properties 
var avPlayer: AVPlayer! 
var avPlayerLayer: AVPlayerLayer! 
var paused: Bool = false 

var enterButton: UIButton! = UIButton() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.title = "Welcome" 

    let theURL = Bundle.main.url(forResource:"hannah", withExtension: "mp4") 

    avPlayer = AVPlayer(url: theURL!) 
    avPlayerLayer = AVPlayerLayer(player: avPlayer) 
    avPlayerLayer.videoGravity = AVLayerVideoGravity.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: NSNotification.Name.AVPlayerItemDidPlayToEndTime, 
              object: avPlayer.currentItem) 
+0

Peut-être essayer de prendre la période, il est donc 'AVLayerVideoGravityResizeAspectFill' ... –

+0

J'ai essayé that- pour 3 rapidement son été renommé pour que la période soit nécessaire –

+0

Quelle version de Xcode utilisez-vous? –

Répondre

5

De l'documentation of AVPlayerLayer.

The video gravity determines how the video content is scaled or stretched within the player layer’s bounds. The player layer supports the following video gravity values:

  • AVLayerVideoGravityResizeAspect

  • AVLayerVideoGravityResizeAspectFill

  • AVLayerVideoGravityResize

The default value is AVLayerVideoGravityResizeAspect .


Le cas enum vous faites référence appartient à Swift 4