为什么我的电影不能使用MPMoviePlayerController播放?

时间:2012-09-16 03:32:37

标签: iphone objective-c ios mpmediaplayercontroller

我正试图在iPhone应用程序中播放一部基本电影;但是,我似乎无法让它发挥作用。这是我的整个代码:

#import <MediaPlayer/MediaPlayer.h>
#import "ViewController.h"

@implementation ViewController

- (IBAction)playMoviePressed:(id)sender
{
    NSURL *url = [NSURL URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];

    MPMoviePlayerController *moviePlayer =
    [[MPMoviePlayerController alloc] initWithContentURL:url];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayer];

    moviePlayer.controlStyle = MPMovieControlStyleDefault;
    moviePlayer.shouldAutoplay = YES;
    [self.view addSubview:moviePlayer.view];
    [moviePlayer setFullscreen:YES animated:YES];
    [moviePlayer prepareToPlay];
    [moviePlayer play];
}


@end

屏幕上有一个按钮,在点按时调用playMoviePressed。我知道这个方法被调用了。我还尝试使用.mov.mp4本地文件将其拖入xcode。

3 个答案:

答案 0 :(得分:3)

我通过为其添加框架来获取代码来播放视频:

[moviePlayer.view setFrame:CGRectMake(0, 0, 320, 200)];

然而,视频不稳定,但可能是我的互联网连接。看到你正在使用IBAction,你可能正在使用Interface Builder或Storyboard,所以我认为唯一阻止它播放的是你错过了与IBOutlet的连接。

答案 1 :(得分:1)

如果你想要一个全屏模式,你可以简单地使用MPMoviePlayerViewController并执行以下操作:

MPMoviePlayerViewController* viewController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:viewController];

答案 2 :(得分:0)

我明白了。我的问题真的很愚蠢。因为我没有维护一个指向我的MPMoviePlayerViewController的强指针,所以一旦方法结束,它就会被释放。界面中的简单@property解决了这个问题。