7
votes

L'audio en pause commence automatiquement sur ApplicationWillenterforeground:

Lorsque ApplicationDentierBackground: Les déclencheurs, je pause l'audio qui joue à l'aide de Avaudioplayer : xxx

maintenant, quand ApplicationWillenterfore : déclencheurs, l'audio commence à jouer automatiquement! Puisque je n'ai pas démarré l'audio, l'interface utilisateur n'est pas mise à jour et indique que l'audio est toujours dans l'état de pause.

Qu'est-ce qui se passe? Cela se produit dans iOS 6.x, sur iPad 2. Ce problème ne se reproduit pas sur l'iPad plus ancien iPad exécutant iOS 5.x.

Voici comment je configurais le Avudiosession : xxx


4 commentaires

Pourquoi ne ferez-vous pas la [Self.avPlayer Pause]; Encore une fois dans l'applicationWillenterforeTround :?


Où utilisez-vous exactement ce code?


C'est une sorte de solution de mauvaise épreuve (à mon avis). Cela dit, :) J'essayais effectivement d'essayer et ça ne marche pas! Je ne sais pas quel genre de sorcellerie est en jeu ici.


L'avaudiosession est définie sur le lancement des applications.


5 Réponses :


1
votes

Dans l'une de mes applications récentes, j'ai trouvé un problème similaire dans lequel la lecture audio pause automatiquement et reprend après que vous soyez interrompu par un appel et une interface graphique ne se rafraîchit pas dans mon application. J'ai corrigé le problème en utilisant la méthode suivante:

enregistrer ceci dans la classe où vous manipulez le code du lecteur xxx

et utilisez avaudiosession ' S Audioplayerendinterruption Méthode de délégation Pour obtenir le contrôle après la reprise de la demande. Dans cette fonction, vous pouvez reprendre la lecture et mettre à jour UI en conséquence. xxx

espère que cela aide.


0 commentaires

0
votes

La solution de HRM n'a pas fonctionné pour moi. La seule façon dont je l'ai eu pour éviter de reprendre la lecture automatiquement consiste à utiliser l'arrêt: [Self.avplayer Stop]


1 commentaires

Il n'y a pas de tel appel à Avplayer comme "Stop"



1
votes

J'ai trouvé un étrange ux et lorsque vous allez aller et retour de l'arrière-plan et basé sur un tas de postes, je prévois un peu de jiggling de la poignée. J'ai fait quelque chose de assez simple - vérifiez si d'autres musiques jouent lorsque l'application entre dans le premier plan: xxx

Si tel est le cas, vous pouvez suspendre le lecteur lorsque cette notification est reçue. Vous avez mentionné que cela n'a pas fonctionné mais sans voir le reste de votre code, il est difficile de savoir pourquoi.

Une autre chose que je devais faire est de supprimer l'observateur du statut Drapeau de l'article du joueur parce que j'écoute que pour le ReadytoPlay Valeur où je dis Avplayer pour jouer réellement. Cela est tiré lorsque l'application entre dans le premier plan et qu'il existe une session audio active. Donc en supprimant cet observateur sur la pause et en la fixant à chaque fois en jeu (ce qui n'est pas fou parce que je discuterais que c'est une contrainte ok pour dire que je m'occupe seulement d'observer après avoir frappé le jeu), je suis capable de contrôler beaucoup de l'étrangeté.

J'ai également écrit un tas de cas de test que je partagerai ici pour vous assurer que votre expérience est en bonne forme. Ce n'est pas complet mais il est également assez complet. xxx


0 commentaires

0
votes

Je faisais également face au même problème. J'ai donc enregistré ma classe pour uiapplicationwillresignactive et je pause audio lorsque j'ai reçu une notification.


0 commentaires

0
votes

2020, toujours pas de solution?

concernant ce problème absurde. Il semble vraiment être un bug simple dans iOS. P>

la seule solution réelle que nous pourrions trouver p>

dans tous les trois em> délégués. P>

func ...handleThat() {
    yourAVPlayer?.rate = 0
    yourAVPlayer = nil
}


0 commentaires