[SWIFT] Résolution d'un problème de mise en pause de la lecture vidéo sur iOS14 pendant la transition en arrière-plan
Correspondance
playerView.player = nil
playerView.player = player
** Modifier la synchronisation d'exécution **
@objc func applicationWillResignActive(_ notification: NSNotification?) {
playerView.player = nil
}
@objc func applicationDidBecomeActive(_ notification: NSNotification?) {
playerView.player = player
}
Contexte
- Utilisateur "La lecture en arrière-plan est étrange après la mise à jour vers iOS 14. D'une manière ou d'une autre: rage :: bangbang:"
- Watakushi ": sanglot:"
Avant la correspondance
- ʻApplicationDidEnterBackground
était
playerView.player = nil` * Selon le contenu du document publié par Apple
Sondage
- Il a cessé de fonctionner même si je n'ai rien fait ⇒ Les spécifications du système d'exploitation ont-elles changé?
- Pause lorsque vous passez à l'arrière-plan ⇒ Est-ce la même chose que l'opération avec le lecteur placé dans le calque?
Vérification
- manuellement
playerView.player = nil
pendant la lecture vidéo et avant la migration en arrière-plan
- Passer à l'arrière-plan
⇒ ** "Lecture continue!" **
La conclusion tirée est ...
** "Le moment de vérifier s'il y a un joueur dans le calque n'a-t-il pas changé?" **
Revalidation
- Changé en
playerView.player = nil
dans ** ʻapplicationWillResignActive ** qui s'exécute avant ʻapplicationDidEnterBackground
- ʻapplicationWillResignActive
est associé à ** ʻapplicationDidBecomeActive
**, changez donc en playerView.player = player
.
⇒ ** "Lecture continue!" **
- Nous avons également confirmé qu'il fonctionne sur iOS 11-14 et iPad OS 13 et 14.
Sommaire
- Même si vous l'écrivez en tant que document d'Apple, cela ne fonctionnera pas, il y a donc un risque élevé de dysfonctionnement du système d'exploitation.
- Selon certaines rumeurs, ce bogue a été corrigé dans iOS 14.2 beta2.
Autre
- Cela fait un moment depuis la sortie d'iOS14, mais je n'ai pas vu cette solution, je publierai donc un article.
Références
- Apple : Playing media while in the background using AV Foundation on iOS
- Apple : Playing Audio from a Video Asset in the Background
- @KenNagami: Cycle de vie de l'application iOS
- @bosteri_bon: Correction du problème selon lequel la "lecture en arrière-plan" n'est pas possible sur iOS14