2020-02-22 15:38:54 +04:00

102 lines
2.4 KiB
Objective-C
Executable File

//
// CBPlayerView.m
// CoubPlayer
//
// Created by Pavel Tikhonenko on 17/10/14.
// Copyright (c) 2014 Pavel Tikhonenko. All rights reserved.
//
#import "CBPlayerView.h"
@implementation CBPlayerView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if(self)
{
[self setupView];
}
return self;
}
- (void)setupView
{
self.clipsToBounds = YES;
_preview = [[UIImageView alloc] initWithFrame:self.bounds];
_preview.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:_preview];
_videoPlayerView = [[CBPlayerLayerView alloc] initWithFrame:self.bounds];
_videoPlayerView.hidden = YES;
((AVPlayerLayer *) _videoPlayerView.layer).videoGravity = AVLayerVideoGravityResizeAspectFill;
[self addSubview:_videoPlayerView];
}
- (void)setContentMode:(UIViewContentMode)contentMode
{
[super setContentMode:contentMode];
_preview.contentMode = contentMode;
((AVPlayerLayer *)_videoPlayerView.layer).videoGravity = (contentMode == UIViewContentModeScaleAspectFit) ? AVLayerVideoGravityResizeAspect : AVLayerVideoGravityResizeAspectFill;
}
- (void)layoutSubviews
{
[super layoutSubviews];
CGRect bounds = self.bounds;
_videoPlayerView.frame = bounds;
_preview.frame = bounds;
}
- (void)play
{
_videoPlayerView.hidden = NO;
}
- (void)stop
{
_videoPlayerView.hidden = YES;
}
//- (void) layoutSubviews
//{
// // We need manual aspect fill/fit layout if we want fluid frame animations
// CGRect bounds = self.bounds;
// //_preview.frame = bounds;
//
// if (self.contentMode == UIViewContentModeScaleAspectFit) {
// CGRect viewFrame = bounds;
//
// CGSize size = _player.loop.videoTrackSize;
// if (size.width && size.height) {
// CGFloat scale = fminf(viewFrame.size.width / size.width, viewFrame.size.height / size.height);
// size.width = roundf(size.width * scale);
// size.height = roundf(size.height * scale);
// viewFrame = CGRectInset(viewFrame, 0.5f * (viewFrame.size.width - size.width), 0.5f * (viewFrame.size.height - size.height));
// }
//
// _videoPlayerView.frame = viewFrame;
// } else
// _videoPlayerView.frame = bounds;
//
// CGPoint center = (CGPoint) { CGRectGetMidX(bounds), CGRectGetMidY(bounds) };
// _spinner.center = center;
// _reloadButton.center = center;
//}
@end
//#pragma mark -
//#pragma mark CBPlayerLayerView
//
//@implementation CBPlayerLayerView
//+ (Class)layerClass { return [AVPlayerLayer class]; }
//@end