我正试图在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。
答案 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
解决了这个问题。