Snelle iOS-SDK-tip AirPlay voor iOS 4.3-apps inschakelen

Een van de meest indrukwekkende functies die is uitgebracht met iOS 4.3 is officiële SDK-ondersteuning voor AirPlay-integratie. Met slechts een paar regels code kan elke iOS-applicatie nu video rechtstreeks naar een AppleTV streamen! AirPlay werkt ook samen met andere ondersteunde Apple-apparaten, zoals de AirPort Express. Lees verder om te leren hoe u AirPlay integreert in uw apps!

In een vorige zelfstudie heb ik laten zien hoe ik video op iOS4 kan afspelen met het MediaPlayer Framework. Deze tutorial verlengt de Big Buck Bunny iOS-app die in die tutorial is gemaakt door de nieuwe AirPlay-functionaliteit op te nemen die wordt aangeboden in SDK 4.3.


Stap 1: Airplay inschakelen

AirPlay inschakelen voor elke MPMoviePlayerController object is eenvoudig:

 [moviePlayerController setAllowsAirPlay: YES];

Het instellen van allowsAirPlay eigenschap naar YES zorgt ervoor dat naast de bedieningselementen van de filmspeler een extra pictogram verschijnt dat AirPlay-weergave start. Helaas krijgen ontwikkelaars geen directe controle over deze functie en moeten ze afhankelijk zijn van de standaardwerking van deze besturing.

Na het inschakelen van AirPlay, zouden de besturingselementen voor de videospeler van Big Buck Bunny er als volgt uit moeten zien:

Nadat u naar een AirPlay-apparaat bent gaan streamen, geeft het Big Buck Bunny-scherm automatisch een bericht weer dat de gebruiker op de hoogte stelt:

Natuurlijk zou je ook de allowsAirPlay waarde via puntnotatie:

 moviePlayerController.allowsAirPlay = YES;

Stap 2: AirPlay compatibel maken met Backwards

De coderegel uitvoeren vanaf stap 1 op oudere versies van iOS die de allowsAirPlay property resulteert in een runtime-uitzondering waardoor uw app crasht. Om AirPlay alleen aan te bieden aan de apparaten die dit ondersteunen, moeten we een voorwaardelijke rond de verklaring plaatsen die controleert of de MPMoviePlayerController object ondersteunt de allowsAirPlay keuze.

Om dit te doen, werkt u de code bij om het te gebruiken respondsToSelector: methode:

 if ([filmPlayerController reageertToSelector: @selector (setAllowsAirPlay :)]) [filmPlayerController setAllowsAirPlay: YES]; 

Het bovenstaande fragment zal AirPlay inschakelen wanneer dit wordt ondersteund en het codeblok gewoon overslaan op niet-ondersteunde apparaten.


aanvullende overwegingen

Er zijn een paar dingen waar u rekening mee moet houden bij het implementeren van AirPlay in uw projecten:

1. AirPlay wordt niet ondersteund op oudere apparaten.

iPhone 3G-gebruikers wanhopen: geen AirPlay voor jou. Apple heeft de gewoonte om nieuwe SDK- en iOS-functies alleen beschikbaar te maken op de meest recente apparaten, en dit is waar met de toevoeging van AirPlay aan SDK 4.3.

De ondersteuningsproblemen zijn niet alleen beperkt tot oudere iPhone-apparaten. Oudere versies van de AppleTV worden ook gekletst om de nieuwe AirPlay-functies niet te ondersteunen.

2. Gebruikers moeten AppleTV- en iOS-software bijwerken

Wanneer u een AirPlay-enabled app start, moet u er rekening mee houden dat uw gebruikers zowel een recente iOS-versie op hun apparaat EN een bijgewerkte versie van de AppleTV-software nodig hebben. Uw applicatie werkt mogelijk perfect, maar een oudere versie van het besturingssysteem die op een Apple TV wordt uitgevoerd, kan toch de vreugde van uw gebruiker stelen.

3. Gebruikers moeten een netwerk delen met AirPlay-apparaten

Om iOS andere Apple AirPlay-apparaten te laten vinden, moet u zich aansluiten bij hetzelfde WiFi-netwerk waarmee de AirPlay-apparaten zijn verbonden. Een Edge / 3G-verbinding zonder draadloos signaal is niet voldoende!