web-dev-qa-db-fra.com

AVPlayer vs AVAudioPlayer

documentation pour AVPlayer indique ce qui suit:

[Le] lecteur fonctionne aussi bien avec les fichiers multimédias locaux et distants

Cependant, le documentation pour AVAudioPlayer indique ce qui suit:

Apple vous recommande d'utiliser cette classe pour la lecture audio, sauf si vous lisez de l'audio capturé à partir d'un flux réseau

Pour le travail que je fais, j'ai besoin de certaines des capacités d'AVAudioPlayer, mais tout mon audio est diffusé. La principale chose dont j'ai besoin d'AVAudioPlayer que AVPlayer n'a pas est la propriété "jouer". Il est difficile de créer une interface utilisateur de joueur sans cette propriété, entre autres.

Quelle est donc la différence entre AVPlayer et AVAudioPlayer qui rend ce dernier inadapté à la diffusion en réseau? Existe-t-il un moyen d'obtenir certaines informations d'AVPlayer fournies par AVAudioPlayer, telles que la propriété "lecture"?

47
macinjosh
  1. AVPlayer peut jouer à partir d'AVPlayerItem en utilisant AVURLAsset avec une URL de bibliothèque iPod. AVAudioPlayer ne peut pas lire à partir d'une URL de bibliothèque iPod.

  2. AVPlayer n'a pas de propriété de volume et nécessite l'utilisation du paramètre de volume du système qui ne peut être contrôlé que par le commutateur matériel ou un MPVolumeView. Mais vous pouvez régler le volume de mixage d'AVAudioPlayer.

  3. AVPlayer semble signaler un CurrentTime incorrect après la recherche. Mais AVAudioPlayer rapporte avec précision.

37
CJ Hanson

7 ans après ...

D'un point de vue dépendant de Swift et CocoaPods, ma réponse est donc de comparer pour iOS 8 + uniquement.

1. Prise en charge de la bibliothèque iPod

support identique depuis iOS6

2. contrôle du volume

support identique:

3. chercher le contrôle

aVPlayer et AVAudioPlayer semblent signaler un CurrentTime incorrect après avoir cherché:

4. changer de source

  • vous n'avez besoin que d'un AVPlayer pour lire plusieurs fichiers
  • vous avez besoin de plusieurs AVAudioPlayer pour lire plusieurs fichiers
20
Cœur

L'AVPlayer a en fait une propriété similaire à la propriété de lecture d'AVAudioPlayer. Jetez un œil à la propriété rate.

7
tadejsv