// // TestVideoViewController.m // Memento // // Created by Ömer Faruk Gül on 22/05/15. // Copyright (c) 2015 Ömer Faruk Gül. All rights reserved. // #import "VideoViewController.h" @import AVFoundation; @interface VideoViewController () @property (strong, nonatomic) NSURL *videoUrl; @property (strong, nonatomic) AVPlayer *avPlayer; @property (strong, nonatomic) AVPlayerLayer *avPlayerLayer; @property (strong, nonatomic) UIButton *cancelButton; @end @implementation VideoViewController - (instancetype)initWithVideoUrl:(NSURL *)url { self = [super init]; if(self) { _videoUrl = url; } return self; } - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; // the video player self.avPlayer = [AVPlayer playerWithURL:self.videoUrl]; self.avPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone; self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer]; //self.avPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:[self.avPlayer currentItem]]; CGRect screenRect = [[UIScreen mainScreen] bounds]; self.avPlayerLayer.frame = CGRectMake(0, 0, screenRect.size.width, screenRect.size.height); [self.view.layer addSublayer:self.avPlayerLayer]; // cancel button [self.view addSubview:self.cancelButton]; [self.cancelButton addTarget:self action:@selector(cancelButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; self.cancelButton.frame = CGRectMake(0, 0, 44, 44); } - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.avPlayer play]; } - (void)playerItemDidReachEnd:(NSNotification *)notification { AVPlayerItem *p = [notification object]; [p seekToTime:kCMTimeZero]; } - (BOOL)prefersStatusBarHidden { return YES; } - (UIButton *)cancelButton { if(!_cancelButton) { UIImage *cancelImage = [UIImage imageNamed:@"cancel.png"]; UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; button.tintColor = [UIColor whiteColor]; [button setImage:cancelImage forState:UIControlStateNormal]; button.imageView.clipsToBounds = NO; button.contentEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10); button.layer.shadowColor = [UIColor blackColor].CGColor; button.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); button.layer.shadowOpacity = 0.4f; button.layer.shadowRadius = 1.0f; button.clipsToBounds = NO; _cancelButton = button; } return _cancelButton; } - (void)cancelButtonPressed:(UIButton *)button { NSLog(@"cancel button pressed!"); [self.navigationController popViewControllerAnimated:YES]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end