0

我正在尝试让一部基本电影在 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我在屏幕上有一个按钮,当它被点击时会调用。我知道这个方法被调用了。我也尝试过使用拖入 xcode 的本地文件.mov.mp4

4

3 回答 3

3

我得到了你的代码,通过为它添加一个框架来播放视频:

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

但是视频断断续续,但这可能是我的互联网连接。看到您正在使用 IBAction,您可能正在使用 Interface Builder 或 Storyboard,所以我认为阻止它播放的唯一原因是您缺少与 IBOutlet 的连接。

于 2012-09-16T06:02:17.313 回答
1

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

MPMoviePlayerViewController* viewController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:viewController];
于 2012-09-16T08:56:22.987 回答
0

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

于 2012-09-16T15:28:19.440 回答