2010-09-10 20 views
6

Jak ustawić poprawną orientację MPMediaPickerController?Orientacja MPMediaPickerController na iPadzie

Zwróciłem TAK w opcjiAutorotateToInterfaceOrientation, ale mam złą ramkę dla Landscape (jeśli pokaż MPMediaPickerController w Portrait pierwszy, i odwrotnie).

Obracam swoje urządzenie chaotycznie, a czasami ustawiam ramkę, aby się poprawić! Znalazłem metodę ustawiania ramki przez obracanie - trzeba obrócić do 180 stopni. Na przykład, jeśli masz dobrą ramkę w Pionie, gdy obrócisz się do Poziomo - masz złą ramkę (z Portatait), ale jeśli obrócisz się do innego krajobrazu (do 180 stopni), wtedy ramka ustawiona na Poziomo ... Dlaczego ?

W jaki sposób ustawić ramkę po obrocie zawsze poprawnie?

pozdrowienia,

Odpowiedz

-1

tu jest jakiś przykładowy kod można spróbować jednego, po obróceniu trzeba ustawić widok palyer mediów w centrum self.view, oto przykładowy kod ... trzeba dodać MediaPlayer Framework najpierw ....

NSString* moviePath = [[NSBundle mainBundle] pathForResource:@"PATRON_LOGO_3" ofType:@"mp4"]; 
NSURL* movieURL = [NSURL fileURLWithPath:moviePath]; 
MPMoviePlayerController *playerCtrl = [[MPMoviePlayerController alloc]initWithContentURL:movieURL]; 
playerCtrl.scalingMode = MPMovieScalingModeFill; 
playerCtrl.controlStyle = MPMovieControlStyleNone; 
[playerCtrl.view setCenter:CGPointMake(240, 160)]; 
[playerCtrl.view setTransform:CGAffineTransformMakeRotation(M_PI/2)]; 
playerCtrl.view.frame = CGRectMake(0, 0, 320, 480); 
[self.view addSubview:playerCtrl.view]; 
[playerCtrl play]; 

myślę, że to działa dobrze, to jest dla trybu krajobrazu do portretu musimy ustawić ramkę według ramie pionowej jak ..

playerCtrl.view.frame = CGRectMake (0, 0, 480, 320);

po tym musimy ustawić środek widoku.

+0

Nie ma to znaczenia dla pytania. Pytanie dotyczy MPMediaPickerController, a nie MPMoviePlayerController. Są to 2 różne rzeczy. A MPMediaPickerController nie ma właściwości transformacji. – GeneCode

+0

@Rocotilos Selektor może nie, ale widok zbieraczy ma, np .: MPMediaPickerController.view.transform –

+0

Tak, nie rozumiem części "widok". Dziękuję za wskazanie tego. – GeneCode

2

Nie wiesz, czy jesteś zainteresowany w roztworze lub nie, skoro pytasz to w roku 2010. każdym razie, po tutaj kilka wyszukiwań jest to, co znalazłem:

  1. MPMediaPickerController NIE OBSŁUGUJE orientacji.

  2. Aby MPMediaPicker wyglądał ładnie w orientacji poziomej, możemy skorzystać z PopOverController. Zasadniczo tworzymy pop over i wstawiamy do niego selektor. PopOverController, po prawidłowym wyświetleniu z rootViewController, rzeczywiście pójdzie za orientacją urządzenia.

Oto przybliżony kod. Działa, ale wymaga czyszczenia. Prawdopodobnie najlepiej sprawdzić, czy popover jest zerowy czy nie, w przeciwnym razie po prostu będzie się on kumulował na sobie za każdym razem, gdy użytkownik dotknie przycisku.

- (IBAction)showMediaPicker:(id)sender 
{ 

    MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny]; 

    mediaPicker.delegate = self; 
    mediaPicker.allowsPickingMultipleItems = YES; 
    mediaPicker.prompt = @"Select musics..."; 


    UIPopoverController *colorPickerPopover = [[[UIPopoverController alloc] 
            initWithContentViewController:mediaPicker] retain];    
    [colorPickerPopover presentPopoverFromBarButtonItem:sender 
            permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];  

} 

Jeszcze jedna uwaga: ta wersja IBAction jest powiązana z przyciskiem paska narzędzi.

0

ja po prostu przesuwając ją na moim kontrolera nawigacyjnego:

MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny]; 

mediaPicker.delegate = self; 
mediaPicker.allowsPickingMultipleItems = NO; 
mediaPicker.prompt = @"Select songs..."; 

[[self navigationController] pushViewController:mediaPicker animated:YES]; 

prawda działa to tylko w kontekście kontrolera nawigacji, ale działa i jest prosty!