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

Posted

技术标签:

【中文标题】为啥我的电影不能使用 MPMoviePlayerController 播放?【英文标题】:Why won't my movie play using MPMoviePlayerController?为什么我的电影不能使用 MPMoviePlayerController 播放? 【发布时间】:2012-09-16 03:32:36 【问题描述】:

我正在尝试让一部基本电影在 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 本地文件进行此操作。

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于为啥我的电影不能使用 MPMoviePlayerController 播放?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的电影类在创建电影实例时遇到问题?

为啥自定义子查询类型不能分配给 GraphQLObjectType?

[iPad技巧]iPad不能看电影,那就去当砧板好了

为啥我的 HTTP DELETE 请求正文显示为未定义?

MPMoviePlayerController 不能全屏播放电影

为啥我的 UIDynamicAnimator 类继承不能使用 addChildBehavior