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"?
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.
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.
AVPlayer semble signaler un CurrentTime incorrect après la recherche. Mais AVAudioPlayer rapporte avec précision.
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.
support identique:
AVAudioPlayer
directement.AVPlayer
avec un AVAudioMix
sur le AVPlayerItem
aVPlayer et AVAudioPlayer semblent signaler un CurrentTime incorrect après avoir cherché:
stop()
le AVAudioPlayer
avant de chercherAVURLAssetPreferPreciseDurationAndTimingKey
lors de l'initialisation d'AVURLAssets. Et comptez sur les valeurs données par le bloc observateur .AVPlayer
pour lire plusieurs fichiersAVAudioPlayer
pour lire plusieurs fichiersL'AVPlayer a en fait une propriété similaire à la propriété de lecture d'AVAudioPlayer. Jetez un œil à la propriété rate
.