AVPlayer, lecture sur Device (Simulator Ok)

iLandesiLandes Membre
janvier 2017 modifié dans Objective-C, Swift, C, C++ #1

Bonjour,


 


J'essaie de lire un fichier son (distant) avec AVPlayer. Cela fonctionne très bien sur simulator mais cela ne fonctionne pas sur terminal. Je pense plus à  un problème de configuration de l'application dans Xcode mais je vous fourni mon code tout de même :


 


D'avance merci pour votre aide.



// MARK: - Constants
    

    
    private struct Key {
        static let rate = "rate"
        static let status = "status"
        static let duration = "currentItem.duration"
        static let loadedTimeRange = "currentItem.loadedTimeRanges"
    }
    
    
    // MARK: - Var
    private var player: AVPlayer!
    
    
    // MARK: - Init
    override init() {
        super.init()
        print ("INIT RADIO !!!!!!")
        // Check valid URL
        guard let url = k.radioURL else {
            print ("URL Error")
            return
        }
        player = AVPlayer(url: url)
        player.play()
        
        // Add Observers
        player.addObserver(self, forKeyPath: Key.rate, options:NSKeyValueObservingOptions.new, context: nil)
        player.addObserver(self, forKeyPath: Key.status, options: NSKeyValueObservingOptions.new, context: nil)
        player.addObserver(self, forKeyPath: Key.duration, options: NSKeyValueObservingOptions.initial, context: nil)
        player.addObserver(self, forKeyPath: Key.loadedTimeRange, options: NSKeyValueObservingOptions.new, context: nil)
    }

Mots clés:

Réponses

  • C'est pas un problème d'autorisation d'accès au micro par hasard ?
  • A priori j'accède pas au micro, juste au haut parleur, mais effectivement cela resemble à  un problème de droit d'accès


  • Avec ton KVO sur status, tu ne tombes pas dans le cas status == AVPlayerStatusFailed, et auquel cas il faudrait voir player.error ?


    Pas de logs étranges dans la console ?


  • Juste comme ça mais pour info depuis Swift 3 tu as une fonctionnalité qui te permet d'accéder aux propriétés sans devoir l'écrire sous sa forme littéral.


     


    Donc au lieu d'écrire une structure qui compose toutes tes propriétés tu peux y accéder directement ainsi : 



    #keyPath(player.rate)
  • GoodGoodGoodGood Membre
    janvier 2017 modifié #6

    Bonjour, 


     


    Etand donné que ton fichier se trouve sur internet , as tu essayé à  tous hazard de désacitver l'app transport sécurity dans ton PLIST ? 


Connectez-vous ou Inscrivez-vous pour répondre.