在iPhone 4中使用UIViewController MediaPlayer附加功能

在iPhone 4中使用UIViewController MediaPlayer附加功能,iphone,uiviewcontroller,mpmovieplayercontroller,media-player,Iphone,Uiviewcontroller,Mpmovieplayercontroller,Media Player,我想在iPhone4静态库中使用 my view controller子类的.h导入。但是,当我在.m中使用PresentMoviePlayServiceController激活时,我会收到一个编译器警告: “MyViewController”可能不响应“-PresentMoviePlayerServiceController动画:动画:” 我做错了什么?如何避免此警告?静态库与此有关吗 当前代码: NSURL* url = [NSURL URLWithString:urlAsString];

我想在iPhone4静态库中使用

my view controller子类的.h导入
。但是,当我在.m中使用PresentMoviePlayServiceController激活时,我会收到一个编译器警告:

“MyViewController”可能不响应“-PresentMoviePlayerServiceController动画:动画:”

我做错了什么?如何避免此警告?静态库与此有关吗

当前代码:

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

PresentMoviePlayServiceController初始化:
采用类型为
MPMoviePlayServiceController
的参数

以下是一个例子:

// 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类型的属性变量(如果需要)。

如果这些添加在静态库中,则需要确保主项目设置了其他链接器标志,否则编译器将忽略扩展

进入主项目的生成设置,并在“链接器标志”下确保具有以下设置:


-ObjC-all_load

我正在传递一个mpmovieplayervewcontroller子类的实例。这就是问题所在吗?那应该没问题——您使用的是iOS 4 SDK吗?是的。基本SDK是iPhone设备4.0,iPhone操作系统部署目标是iPhone操作系统3.1。您在哪里调用
PresentMoviePlayerServiceController驱动的
?也许你应该发布一些代码,这样我们可以更清楚地看到发生了什么。这个答案包含了我遇到的另一个问题的关键线索,电影控件不会立即出现。答案是提前告诉电影播放器它是MPMoviesSourceType文件。