2010-10-28 26 views
5

Quiero agregar un botón en mi reproductor de video cuando se reproduce en pantalla completa. Creé una Superposición en mi reproductor de video y está funcionando muy bien en un iPhone. Intenté hacer lo mismo en un iPad, pero el botón nunca aparece.Superposición de MPMoviePlayer en modo de pantalla completa (iPad)

Aquí está mi código:

NSArray *windows = [[UIApplication sharedApplication] windows]; 
if ([windows count] > 1){ 
     UIWindow * moviePlayerWindow = [windows objectAtIndex:1]; 
     NSArray * subviews = [moviePlayerWindow subviews]; 
     UIView * videoView = [subviews objectAtIndex:0]; 
     [videoView addSubview:myButton]; 
} 

Se costuras como la dosis no ipad crear un UIWindow para el modo de pantalla completa.

¿Alguien tiene alguna idea de cómo podría hacer esto?

Gracias!

Respuesta

3

he encontrado una solución a este problema hace unas semanas:

parece que este método no funciona en el iPad (no he comprobado iPhone SDK 4>) para el fin de recibir todo el año se puede hacer lo siguiendo.

Después de agregar el video y la configuración a pantalla completa puede agregar los controles directamente a la ventana UI (por ejemplo, [[[[aplicación UIAplicación compartida] ventanas] objectAtIndex: 0] addSubView: myView]), aparecerán encima de su video video

El único problema que he encontrado con esto es que no obedecen las reglas de orientación de la vista y he tenido que programar manualmente el código de rotación en el método willRotateToInterfaceOrientation de la vista.

+1

¿Puedes explicarnos cómo te enfrentaste a la orientación? Estaría feliz de ver algún código. Gracias – Alex1987

+0

Agregué superposición de la misma manera. ¿Has resuelto el problema de rotación? – 1110

2

La solución de @tigermain funciona.

[[[[UIApplication sharedApplication] windows] objectAtIndex:0] addSubView:myView]

Pero las vistas agregadas a la ventana no siguen la orientación.

La solución para la orientación es usar NSNotificationCenter, UIApplicationDidChangeStatusBarOrientationNotification.

// assign a notification 
    id center = [NSNotificationCenter defaultCenter]; 
    [center addObserver:self 
      selector:@selector(didRotate:) 
       name:UIApplicationDidChangeStatusBarOrientationNotification 
       object:nil]; 

    // this method will get called when the orientation changes 
    -(void) didRotate:(NSNotification*)notification { 

     UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; 
     NSLog(@"%d", orientation); 
     // ... transform view accordingly to the enum 'UIInterfaceOrientationXXX' 
    } 
Cuestiones relacionadas