2010-09-10 5 views
6

Как настроить правильную ориентацию MPMediaPickerController?MPMediaPickerController ориентация на iPad

Я вернул ДА в shouldAutorotateToInterfaceOrientation, но у меня плохая рамка для пейзажа (если сначала показать MPMediaPickerController в портрете, и наоборот).

Я вращаю свое устройство хаотично и когда-то рамку, чтобы исправить себя! Я нашел способ установки рамки путем вращения - нужно повернуть на 180 градусов. Например, если у вас есть хороший кадр в «Портрет», когда вы вращаетесь в «Пейзаж», у вас плохой кадр (из Portatait), но если вы вращаетесь в другой пейзаж (до 180 градусов), тогда рамка установлена ​​на Пейзаж ... Почему ?

Как я могу установить рамку после вращения правильно?

С уважением,

ответ

-1

вот некоторые примеры кода, вы можете попробовать это одно, после поворота вы должны установить вид медиа плейер в центре self.view, вот некоторые примеры кода ... Вы должны добавить MediaPlayer Framework на первое ....

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]; 

я думаю, что он работает нормально, это для ландшафтного режима для портрета мы должны установить рамку в соответствии с портретной рамой, как ..

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

После этого мы должны установить в центр обзора.

+0

Это не относится к вопросу. Вопрос задает MPMediaPickerController, а не MPMoviePlayerController. Это две разные вещи. И MPMediaPickerController не имеет свойства преобразования. – GeneCode

+0

@Rocotilos Сборщик не может, но просмотрщик выбирает, например: MPMediaPickerController.view.transform –

+0

Yup Я считаю, что "вид" часть. Спасибо что подметил это. – GeneCode

2

Не уверен ли вы заинтересованы в решении или нет, так как вы спрашивали об этом в 2010 году Во всяком случае, после нескольких поисков здесь является то, что я нашел:

  1. MPMediaPickerController НЕ ПОДДЕРЖИВАЕТ альбомную ориентацию.

  2. Чтобы сделать MPMediaPicker красивым в альбомной ориентации, мы можем использовать PopOverController. В принципе, мы создаем всплывающее окно и вставляем в него сборщик. PopOverController, если он правильно отображается из корневого контроллера, действительно будет следовать ориентации устройства.

Вот примерный код. Он работает, но требует некоторой очистки. Наверное, лучше всего проверить, является ли popover ником или нет, иначе он будет просто складываться на себя каждый раз, когда пользователь нажимает на кнопку.

- (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];  

} 

Еще немного примечаний: этот IBAction привязан к кнопке панели инструментов.

0

Я просто толкая его на мой контроллер навигации:

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

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

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

Конечно это работает только в контексте навигационного контроллера, но он работает и просто!

Смежные вопросы