2011-05-05 4 views
4

J'essaie de déterminer s'il est possible de basculer le support AirPlay en utilisant la classe AVAudioPlayer.AVAudioPlayer et AirPlay - possible?

D'après ce que j'ai lu:

AirPlay est une technologie qui permet à votre flux audio à l'application Apple TV et haut-parleurs AirPlay tiers et récepteurs. La prise en charge AirPlay est intégrée au cadre AV Foundation et à la famille de structures Core Audio. Tout contenu audio que vous jouez à l'aide de ces cadres est automatiquement éligible pour la distribution AirPlay. Une fois que l'utilisateur a choisi de lire votre audio avec AirPlay, il est automatiquement routé par le système. [Ref]

Basé sur cette information; il devrait travailler avec AVAudioPlayer car il fait partie du cadre AVFoundation; mais je ne peux pas trouver de documentation supportant cette hypothèse.

J'ai aussi trouvé des documents disant qu'il peut être fait avec MPMoviePlayerViewController:

support pour la lecture vidéo en utilisant AirPlay est inclus dans la classe MPMoviePlayerController. Cette prise en charge vous permet de lire du contenu vidéo sur du matériel compatible AirPlay tel qu'Apple TV. Lorsque la propriété allowsAirPlay d'un objet MPMoviePlayerController actif est définie sur YES et que l'appareil se trouve dans une plage de matériel compatible AirPlay, le lecteur vidéo présente à l'utilisateur un contrôle permettant d'envoyer la vidéo à ce matériel. [Ref]

On dirait qu'il y a des informations contradictoires ici. Est-ce que quelqu'un sait s'il est possible d'utiliser AVAudioPlayer pour acheminer vers AirPlay ou sommes-nous obligés d'utiliser la classe MPMoviePlayerController?

Merci beaucoup.

Répondre

2

En réponse à ma propre question. Il semble que la manière simple est d'ajouter le contrôleur de volume personnalisé est mentionné ici: [ref], et il fonctionnera parfaitement avec le MPAudioPlayer. C'est juste une question de positionnement.

+0

Je peux confirmer que cela fonctionne. –

0

C'est assez facile avec Interface Builder pour que vous puissiez utiliser facilement la mise en page automatique. Lieu où vous voulez un objet UIView sur votre point de vue principal, puis créer une sous-classe de MPVolumeView et d'utiliser cette classe personnalisée pour votre objet UIView

enter image description here

et la sous-classe classe VolumeView de MPVolumeView

import UIKit 
import MediaPlayer 
class VolumeView: MPVolumeView { 
    convenience init() { 
     self.init() 
} 

override func drawRect(rect: CGRect) { 
    self.showsVolumeSlider = false 
    self.layer.cornerRadius = 10.0 
    self.clipsToBounds = true 

} 

}