2011-10-13 12 views
10

Ho un'istanza di MPMoviePlayerController che viene utilizzata per visualizzare alcuni video in diretta streaming su un'app per iPhone. Funziona bene, tuttavia desidero rimuovere tutte le funzionalità di AirPlay.Disabilita AirPlay con MPMoviePlayerController

A dire il vero, ho AirPlay specificamente disabilitare in questo modo:

if([self.moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) { 
    self.moviePlayerController.allowsAirPlay = NO; 
} 

Tuttavia, anche con questo codice, continuo a vedere l'icona AirPlay sui controlli video. Se seleziono questo e seleziono la mia AppleTV, solo l'audio viene inviato su AirPlay - il video continua a essere riprodotto all'interno dell'app. Se imposto allowsAirPlay su YES, entrambi i video audio & vengono inviati su AirPlay.

Qualcuno sa perché questo accade? È una funzionalità del sistema operativo, per consentire di inviare l'audio su AirPlay?

+0

hai provato a impostare 'useApplicationAudioSession = NO;'? –

+0

Ho ora - non sembra fare alcuna differenza, ho paura. –

+0

Hai impostato allowAirPlay prima di impostare l'URL del contenuto del lettore? – jbat100

risposta

4

Si scopre che l'icona AirPlay è ancora visibile (e dovrebbe rimanere visibile) in modo che l'audio possa essere indirizzato a qualsiasi dispositivo adatto, ad es. un auricolare Bluetooth. Il tentativo di nascondere l'icona è considerato una cattiva pratica.

+0

Vecchia domanda; ma hai la possibilità di avere un link alla documentazione di Apple che supporta questo? – Craig

+1

Scusa, no, in realtà ho ricevuto la risposta da un ingegnere Apple in uno dei loro Tech Talks. Se ci pensi logicamente ha senso. Coloro che desiderano utilizzare un auricolare o altoparlanti Bluetooth dovrebbero essere sempre in grado di usarli, in quanto potrebbero non essere udibili, ecc. –

+0

Grazie. Penso che abbia senso, c'è solo preoccupazione per le licenze di contenuto. – Craig

2

Ho conosciuto una sua vecchia domanda, ma forse questo aiuterà qualcun altro.
Apple ha il seguente API per nascondere il pulsante percorso (AirPlay)

@property (nonatomic) BOOL showsRouteButton NS_AVAILABLE_IOS(4_2); // Default is YES. 

Spero che questo aiuti chiunque.

0

@Philip K, il tuo suggerimento quasi ha risolto questo problema per me, eseguendo il debug di un codice vecchio di quattro anni. showsRouteButton non è una proprietà sulla MPMoviePlayerController, e ho provato a installare:

myMPMoviePlayer.allowsAirPlay = NO; 

Ma questo non ha fatto nulla ...

e che stiamo usando controlli personalizzati per il nostro video player, e ha scoperto che il pulsante di percorso è una parte del MPVolumeView, e il vostro trucco applica c'è:

MPVolumeView * vView = [[MPVolumeView alloc] initWithFrame: bounds]; 
vView.showsRouteButton = NO; 

Bingo! Grazie.