为啥我的电影不能使用 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?