Установите рамку MPMoviePlayerController в iOS 3.1.x - PullRequest
0 голосов
/ 24 января 2011

Я пытался установить фрейм MPMoviePlayerController.Но приложение рушится на линии player.view.frame = CGRectMake (0,0,480,320); в iOS 3.1.3, но прекрасно работает на iOS 3.2 или выше.В чем может быть проблема?

- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"aVideo.mp4" ofType:@""]];
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];

    // Register to receive a notification when the movie has finished playing.
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayer];

    moviePlayer.scalingMode = MPMovieScalingModeAspectFit;

    if ([moviePlayer respondsToSelector:@selector(setFullscreen:animated:)]) {
        // Use the new 3.2 style API
        moviePlayer.repeatMode = YES;
         moviePlayer.controlStyle = MPMovieControlStyleEmbedded;
        moviePlayer.shouldAutoplay = YES;
        [self.view addSubview:moviePlayer.view];
    } 
    else {
         Use the old 2.0 style API
       moviePlayer.view.frame = CGRectMake (0,0,480,320);
        [self.view addSubview: [moviePlayer view]];
        moviePlayer.movieControlMode = MPMovieControlStyleDefault;
        [moviePlayer play];

    }
}

Ответы [ 3 ]

2 голосов
/ 24 мая 2011

Ссылка MPMoviePlayerController ясно заявляет, что свойство представления доступно с iOS3.2 и более поздних версий.

view

Просмотр с содержанием фильма и контролирует. (Только для чтения)

@property (nonatomic, readonly) UIView *view

Обсуждение

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

Чтобы встроить вид в ваш собственный вид иерархии, добавить его в качестве подпредставления один из ваших существующих взглядов. Хороший место для этого в loadView или метод viewDidLoad пользовательского представления контроллер, который представляет ваш взгляд иерархия. Вы можете изменить посмотреть рамку прямоугольника для размещения пространство, доступное на ваш взгляд иерархия. Киноплеер использует значение в свойстве scalingMode для масштабировать содержание фильма, чтобы соответствовать указанная вами рамка.

Если вы хотите представить вид сам, то есть, не встраивая его в существующей иерархии представлений - вы можете использовать экземпляр Класс MPMoviePlayerViewController для управлять представлением представления. Этот класс работает напрямую с контроллер проигрывателя фильмов для представления просмотр сам по себе.

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

Наличие

  • Доступно в iOS 3.2 и более поздних версиях.

и для iOS 3.1

Поведение в iOS 3.1 и более ранних версиях

В iOS 3.1 и более ранних версиях этот класс реализован полноэкранный проигрыватель фильмов только. После создания плеера фильма и инициализировать его с помощью одного файл фильма, вы назвали метод воспроизведения представить фильм. (Определение с тех пор метод воспроизведения вышел этого класса и в Протокол MPMediaPlayback.) Фильм Сам объект игрока обрабатывал фактическая презентация фильма содержание.

1 голос
/ 24 мая 2011

просмотр свойство доступно в iOS 3.2 и более поздних версиях для MPMoviePlayerController .

1 голос
/ 24 января 2011

Что это за сбой?Выдается исключение?

...