iPhone MPMoviePlayer в ландшафтном режиме - PullRequest
0 голосов
/ 15 февраля 2011

Я хочу показать MPMoviePlayer в ландшафтном режиме при запуске приложения.Теперь все начинается в портретном режиме.Есть несколько кодов, которые заставляют приложение запускаться в ландшафтном режиме.Но говорят, что эти сегменты кода принадлежат частному API, поэтому магазин приложений не примет приложение.С утра я пытаюсь найти способ, но безрезультатно ... Кто-нибудь может мне помочь?

Вот где я:

NSURL * url = [[NSURL alloc] initWithString:urlString];

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(videoPlayerPlaybackStateChanged:) 
                                             name:MPMoviePlayerPlaybackStateDidChangeNotification
                                           object:nil];

[self setWantsFullScreenLayout:YES];
[moviePlayer prepareToPlay];
//For viewing partially.....
moviePlayer.view.backgroundColor = [UIColor blackColor];
//[moviePlayer.view setFrame:CGRectMake(0, 0, 320, 410)];
[moviePlayer.view setFrame:[self.view bounds]];
moviePlayer.fullscreen = YES;
moviePlayer.scalingMode = MPMovieScalingModeAspectFill;


[self.view addSubview:moviePlayer.view]; 

//[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
[moviePlayer play];

Заранее благодарны ..

Ответы [ 3 ]

0 голосов
/ 15 февраля 2011

Если все ваше приложение будет в альбомной ориентации, вы можете изменить его в списке вашего проекта. Если нет, вы также можете создать подкласс MPMoviePlayerControllerView, реализовать и сделать что-то подобное.

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)
 interfaceOrientation {
  // Return YES for supported orientations.
  if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft
      || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
    return YES;
  }

  return NO;
}
0 голосов
/ 10 октября 2014

Используйте MPMoviePlayerViewController вместо MPMoviePlayerController.Он будет обрабатывать ориентацию, стиль управления и т. Д. Я сослался на https://stackoverflow.com/a/4911172/3346048 для того же.

MPMoviePlayerViewController *playerView = [[[MPMoviePlayerViewController alloc] initWithContentURL:videoURL] autorelease];
[self presentMoviePlayerViewControllerAnimated:playerView];

и в AppDelegate.m объявил следующую функцию.Что ограничит ориентацию на портрет во всех случаях и изменится только при воспроизведении видео:

    - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if ([[self.window.rootViewController presentedViewController] isKindOfClass:[MPMoviePlayerViewController class]])
    {
        return return UIInterfaceOrientationMaskLandscape;
    }

}
0 голосов
/ 15 февраля 2011

Откройте список info.plist вашего проекта в группе ресурсов в xCode.выберите последнюю строку и нажмите на значок + (плюс).Теперь выберите ключ «Начальная ориентация интерфейса» для значения «Пейзаж (левая кнопка домой)».или вы можете выбрать любое значение из списка, отображаемого при нажатии на выпадающие кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...