Est-ce que quelqu'un a trouvé comment suspendre AVPlayer en quittant une vue? J'ai cherché partout et n'ai trouvé aucune réponse.AVPlayer met en pause la vidéo lorsque vous quittez la vue.
J'ai essayé d'ajouter la fonction "pause du lecteur" dans viewWillDissappear et viewDidDisappear. Aucun des deux ne semble l'avoir compris. Je ne sais pas si cela a quelque chose à faire sera la vue de défilement, mais il semble qu'il devrait y avoir un moyen. Je n'ai rien vu dans la documentation d'Apple non plus.
Voici ce que j'ai essayé.
//
// VideoTestViewController.swift
// Faces of the Holocaust Photographic History
//
// Created by New User on 8/26/17.
// Copyright © 2017 New User. All rights reserved.
//
import UIKit
import AVFoundation
import AVKit
class VideoTest: UIViewController {
var player : AVPlayer?
override func viewDidLoad() {
super.viewDidLoad()
let url : URL = URL(string: "https://firebasestorage.googleapis.com/v0/b/faces-of-the-holocaust.appspot.com/o/Alan%20Hall.mp4?alt=media&token=19c13572-b6fb-42e9-94e5-535dac227de5")!
let player = AVPlayer(url: url)
var playerLayer : AVPlayerLayer?
playerLayer = AVPlayerLayer(player: player)
playerLayer?.videoGravity = AVLayerVideoGravityResizeAspect
playerLayer!.frame = self.view.frame
self.view!.layer.addSublayer(playerLayer!)
player.play()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
override func viewWillDisappear(_ animated: Bool){
player?.pause()
}
*/
@IBAction func button(_ sender: Any) {
let playerIsPlaying = player?.rate != 0
if playerIsPlaying {
player?.pause()
} else {
player?.play()
}
}
}