Использование дополнений UIViewController MediaPlayer в iPhone 4 - PullRequest
2 голосов
/ 27 июля 2010

Я хочу использовать дополнения 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];
}

Ответы [ 2 ]

1 голос
/ 27 июля 2010

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 - это свойство var (если оно вам нужно) типа MPMoviePlayerViewController.

0 голосов
/ 26 июля 2011

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

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

-ObjC -all_load

...