Использование дополнений UIViewController MediaPlayer в iPhone 4

Я хочу использовать дополнения UIViewController MediaPlayer в статической библиотеке iPhone 4.

.h моего подкласса контроллера представления импортирует <MediaPlayer/MediaPlayer.h>. Однако, когда я использую presentMoviePlayerViewControllerAnimated в .m, я получаю предупреждение компилятора:

'MyViewController' может не реагировать на '-presentMoviePlayerViewControllerAnimated:animated:'

Что я делаю неправильно? Как избежать этого предупреждения? Имеет ли статическая библиотека какое-либо отношение к этому?

Текущий код:

NSURL* url = [NSURL URLWithString:urlAsString];
if ([MPMoviePlayerController instancesRespondToSelector:@selector(setFullscreen:animated:)]) {
    // iPhone 3.2 or higher  
    MyMoviePlayerViewControllerSubclass* vc = [[MyMoviePlayerViewControllerSubclass alloc] initWithContentURL:url];
    [self presentMoviePlayerViewControllerAnimated:vc animated:YES];
    [vc release];
}

person hpique    schedule 27.07.2010    source источник


Ответы (2)


presentMoviePlayerViewControllerAnimated: принимает параметр типа MPMoviePlayerViewController.

Вот пример:

// Initialize a movie player object with the specified URL
    MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

    if (mp) {
        // save the movie player object
        self.moviePlayerViewController = mp;
        [mp release];

        //Present       
        [self presentMoviePlayerViewControllerAnimated:self.moviePlayerViewController];

        // Play the movie!
        self.moviePlayerViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
        [self.moviePlayerViewController.moviePlayer play];
    }

Где url — это URL-адрес фильма, а self.moviePlayerViewController — это переменная свойства (если она вам нужна) типа MPMoviePlayerViewController.

person Calvin    schedule 27.07.2010
comment
Я передаю экземпляр подкласса MPMoviePlayerViewController. В этом проблема? - person hpique; 27.07.2010
comment
Это должно быть хорошо — вы используете iOS 4 SDK? - person Calvin; 27.07.2010
comment
да. Базовым SDK является iPhone Device 4.0, а целью развертывания ОС iPhone — iPhone OS 3.1. - person hpique; 27.07.2010
comment
Куда ты звонишь presentMoviePlayerViewControllerAnimated? Может быть, вам следует опубликовать код, чтобы мы могли более четко видеть, что происходит. - person Calvin; 27.07.2010
comment
Этот ответ содержал важную подсказку для другой проблемы, с которой я столкнулся, когда элементы управления фильмом не появляются сразу. Ответ заключается в том, чтобы заранее сообщить проигрывателю фильмов, что это MPMovieSourceTypeFile. - person Nick Farina; 26.02.2011

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

зайдите в настройки сборки для вашего основного проекта и под флагами компоновщика убедитесь, что у вас есть следующий набор:

-ObjC -all_load

person Matt    schedule 26.07.2011