2011-10-13 15 views
10

Tengo una instancia de MPMoviePlayerController que se está utilizando para mostrar algunos videos de transmisión en vivo en una aplicación de iPhone. Esto funciona bien, sin embargo, deseo eliminar toda la funcionalidad de AirPlay.Deshabilitar AirPlay con MPMoviePlayerController

Sin duda, me AirPlay específicamente desactivar este modo:

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

Sin embargo, incluso con este código, todavía ver el icono de AirPlay en los controles de vídeo. Si selecciono esto y selecciono mi AppleTV, solo el audio se envía a través de AirPlay; el video continúa reproduciéndose dentro de la aplicación. Si configuro allowsAirPlay en YES, el audio de video & se envía a través de AirPlay.

¿Alguien sabe por qué sucede esto? ¿Es esta una característica del sistema operativo, que permite que el audio se envíe a través de AirPlay?

+0

¿Intentó establecer 'useApplicationAudioSession = NO;'? –

+0

Tengo ahora - no parece hacer ninguna diferencia, me temo. –

+0

¿Ha configurado allowsAirPlay antes de configurar la URL de contenido del reproductor? – jbat100

Respuesta

4

Resulta que el icono de AirPlay sigue siendo visible (y debe permanecer visible) para que el audio se pueda enrutar a cualquier dispositivo adecuado, por ej. un auricular Bluetooth. Intentar ocultar el icono se considera una mala práctica.

+0

Bastante vieja pregunta; pero ¿hay alguna posibilidad de que tenga un enlace a la documentación de Apple que lo respalde? – Craig

+1

Disculpe, no, de hecho recibí la respuesta de un ingeniero de Apple en una de sus charlas técnicas. Si lo piensas lógicamente, tiene sentido. Aquellos que deseen utilizar un auricular o altavoces Bluetooth siempre deben poder usarlos, ya que pueden ser difíciles de oír, etc. –

+0

Gracias. Creo que tiene sentido, solo hay preocupación por las licencias de contenido. – Craig

2

Conocí que es una vieja pregunta, pero aún así, quizás esto ayude a otra persona.
Apple tiene la siguiente API para ocultar el botón de ruta (AirPlay)

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

Espero que esto ayude a nadie.

0

@Philip K, su sugerencia casi ha resuelto esto por mí, depurando un código de cuatro años. showsRouteButton no es una propiedad en la MPMoviePlayerController, y yo trataba de ajuste:

myMPMoviePlayer.allowsAirPlay = NO; 

Pero esto no hizo nada ...

y estamos utilizando los controles personalizados para nuestro reproductor de vídeo, y se encontró que el botón de ruta es una parte de MPVolumeView, y su truco se aplica allí:

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

Bingo! Gracias.

Cuestiones relacionadas