视频不显示在屏幕上
问题描述:
我在我的VideosView.h中导入了MPMoviePlayerController。 在我VideosView.m我嵌入以下代码:视频不显示在屏幕上
NSString *path2 = [[NSBundle mainBundle] pathForResource:@"myVideo" ofType:@"mp4" inDirectory:@"images"];
NSLog(@"%@", path2);
MPMoviePlayerController *myPlayer = [[MPMoviePlayerController alloc] init];
myPlayer.shouldAutoplay = YES;
myPlayer.repeatMode = MPMovieRepeatModeOne;
myPlayer.fullscreen = YES;
myPlayer.movieSourceType = MPMovieSourceTypeFile;
myPlayer.scalingMode = MPMovieScalingModeAspectFit;
myPlayer.contentURL =[NSURL fileURLWithPath:path2];
myPlayer.view.frame = CGRectMake(0, 0, 500, 500);
myPlayer.scalingMode = MPMovieScalingModeFill;
myPlayer.controlStyle = MPMovieControlModeDefault;
[self addSubview:myPlayer.view];
[myPlayer play];
我发现#2这个例子中,却无法得到它的工作。链接到我的视频是正确的(是的,它在图像文件夹中)。我的屏幕上显示一个500×500像素的黑色矩形(课程框架),但没有播放视频。
有些帮助会很大。 W.
答
定义myPlayer对象全球
在你的代码,该myPlayer的生活与变量的作用域结束。如果你在一个方法内创建。玩家以该方法的范围结束。
@property(nonatomic, strong) MPMoviePlayerController *myPlayer;
然后初始化从任何你想要的,
_myPlayer = [[MPMoviePlayerController alloc] init];
答
self.moviePlayerView = [[MPMoviePlayerViewController alloc]initWithContentURL:videoURL];
movie = [self.moviePlayerView moviePlayer];
movie.controlStyle = MPMovieControlStyleNone;
[movie setControlStyle:MPMovieControlStyleFullscreen];
self.moviePlayerView.moviePlayer.shouldAutoplay=YES;
[movie prepareToPlay];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playbackStateChanged)
name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];
self.moviePlayerView.view.frame = CGRectMake(0.0f, 0.0f, 304.0f, 221.0f);
[[self.moviePlayerView moviePlayer]play];
add bewlow..
- (void) playbackStateChanged
{
self.moviePlayerView.moviePlayer.shouldAutoplay=YES;
MPMoviePlaybackState playbackState = [self.moviePlayerView.moviePlayer playbackState];
switch (playbackState)
{
case MPMoviePlaybackStateStopped :
break;
case MPMoviePlaybackStatePlaying :
break;
case MPMoviePlaybackStateInterrupted :
break;
}
}
真棒!努力可以在本地做到这一点。谢谢! – 2013-04-30 19:27:49