下面是放在pageViewController里面的子VC来播放视频。
模仿微信做的图片选择器,在浏览图片的时候,如果遇到视频,可以在浏览过程中播放视频。本人新手,希望遇到过这种情况的大神指教一下,谢谢了。
#import "CHVideoPlayerViewController.h"
#import
@interface CHVideoPlayerViewController ()
{
MPMoviePlayerViewController _movie;
UITapGestureRecognizer *_tap;
/*
* 播放按钮
*/
UIImageView *_playerView;
}
@end
@implementation CHVideoPlayerViewController
-
(void)viewDidLoad {
[super viewDidLoad];_tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];
/**
- 视频播放对象 */ _movie = [[MPMoviePlayerViewController alloc] initWithContentURL:_url]; _movie.moviePlayer.controlStyle = MPMovieControlStyleNone; [_movie.view setFrame:self.view.bounds]; _movie.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; _movie.moviePlayer.scalingMode = MPMovieScalingModeAspectFit; _movie.moviePlayer.shouldAutoplay = NO; [_movie.view.subviews.firstObject addGestureRecognizer:_tap];
_playerView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bofang64"]];
_playerView.backgroundColor = [UIColor clearColor];
// [_playerView addGestureRecognizer:_tap];
_playerView.center = _movie.view.center;
[_movie.view addSubview:_playerView];[self.view addSubview:_movie.view];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myMovieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
}
(void)myMovieFinishedCallback:(NSNotification*)notification
{
_playerView.alpha = 1;
self.navigationController.navigationBar.alpha = 0.5;
self.navigationController.toolbar.alpha = 0.5;
}(void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}-
(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[_movie.moviePlayer prepareToPlay];if (_movie.moviePlayer.playbackState == MPMoviePlaybackStatePlaying) {
self.navigationController.navigationBar.alpha = 0;
self.navigationController.toolbar.alpha = 0;
_playerView.alpha = 0;
}else {
self.navigationController.navigationBar.alpha = 0.5;
self.navigationController.toolbar.alpha = 0.5;
_playerView.alpha = 1;
}
}
(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
}(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
[_movie.moviePlayer stop];
}-
(void)tapAction:(UITapGestureRecognizer *)tap {
if (_movie.moviePlayer.playbackState == MPMoviePlaybackStatePlaying) {
[_movie.moviePlayer pause];
self.navigationController.navigationBar.alpha = 0.5;
self.navigationController.toolbar.alpha = 0.5;
_playerView.alpha = 1;
}else {
self.navigationController.navigationBar.alpha = 0;
self.navigationController.toolbar.alpha = 0;
[UIView animateWithDuration:0.5 animations:^{
_playerView.alpha = 0;
_playerView.transform = CGAffineTransformMakeScale(5, 5);
} completion:^(BOOL finished) {
_playerView.transform = CGAffineTransformIdentity;
[_movie.moviePlayer play];
}];}
}