15 Commits

Author SHA1 Message Date
Alfie Hanssen 088d368709 bumped version in podspec 2015-08-27 13:51:20 -04:00
Alfie Hanssen 4508acf2ed Merge pull request #17 from vimeo/vim-2669
VIM-2669
2015-08-26 17:20:16 -04:00
Alfie Hanssen 7ae3643508 added an assertion 2015-08-26 17:18:18 -04:00
Alfie Hanssen d6047dc471 Merge pull request #16 from vimeo/pod-authors
update podspec authors
2015-08-26 16:56:14 -04:00
Alfie Hanssen 3724c3000c changing property name for playerItem 2015-08-26 16:39:36 -04:00
Alfie Hanssen 38f28c9e3a potential fix for KVO crash related to not removing observers from currentItem before deallocation of item 2015-08-26 16:27:04 -04:00
Rob Huebner 5b3134f094 add some more authors 2015-08-20 11:37:06 -04:00
Rob Huebner 85efea0363 update podspec authors 2015-08-19 12:21:42 -04:00
Alfie Hanssen dd8b5b9dc6 updated podspec 2015-08-14 17:33:42 -04:00
Alfie Hanssen 5775bbc2af Merge pull request #15 from vimeo/vim-2661
Fix for crash where av player status == failed but there's no nserror
2015-08-13 11:56:38 -04:00
Alfie Hanssen 0a9707d68f fix for crash where av player status == failed but theres no nserror 2015-08-10 14:22:49 -04:00
Rob Huebner c1c2f93793 updated podspec 2015-07-31 17:27:47 -04:00
Gavin King 3454df7198 formatting 2015-07-29 14:27:39 -04:00
Gavin King 5545e1bc43 Merge pull request #14 from efremidze/master
Added initializers (storyboard support)
2015-07-29 14:04:57 -04:00
Lasha Efremidze 367b516abd Update VIMVideoPlayerView.m
Added required initializers
2015-07-18 22:08:37 -07:00
3 changed files with 59 additions and 17 deletions
+9 -2
View File
@@ -9,7 +9,7 @@
Pod::Spec.new do |s|
s.name = "VIMVideoPlayer"
s.version = "5.5"
s.version = "5.5.5"
s.summary = "A simple wrapper around the AVPlayer and AVPlayerLayer classes."
s.description = <<-DESC
VIMVideoPlayer is a simple wrapper around the AVPlayer and AVPlayerLayer classes. Check out the README for details. And the Pegasus project for a demo.
@@ -19,7 +19,14 @@ Pod::Spec.new do |s|
s.license = "MIT"
s.license = { :type => "MIT", :file => "LICENSE.md" }
s.authors = { "Alfie Hanssen" => "alfiehanssen@gmail.com" }
s.authors = { "Alfie Hanssen" => "alfiehanssen@gmail.com",
"Rob Huebner" => "robh@vimeo.com",
"Gavin King" => "gavin@vimeo.com",
"Kashif Muhammad" => "support@vimeo.com",
"Andrew Whitcomb" => "support@vimeo.com",
"Stephen Fredieu" => "support@vimeo.com",
"Rahul Kumar" => "support@vimeo.com" }
s.social_media_url = "http://twitter.com/vimeo"
# s.platform = :ios
+25 -8
View File
@@ -55,6 +55,8 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
@property (nonatomic, assign) BOOL isTimingUpdateEnabled;
@property (nonatomic, strong) id timeObserverToken;
@property (nonatomic, strong) AVPlayerItem *item;
@end
@implementation VIMVideoPlayer
@@ -68,8 +70,6 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
[self removeTimeObserver];
[self cancelFadeVolume];
NSLog(@"dealloc");
}
- (instancetype)init
@@ -407,11 +407,13 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
- (void)resetPlayerItemIfNecessary
{
if (self.player.currentItem)
if (self.item)
{
[self removePlayerItemObservers:self.player.currentItem];
[self removePlayerItemObservers:self.item];
[self.player replaceCurrentItemWithPlayerItem:nil];
self.item = nil;
}
_volumeFadeDuration = DefaultVolumeFadeDuration;
@@ -424,6 +426,10 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
- (void)preparePlayerItem:(AVPlayerItem *)playerItem
{
NSParameterAssert(playerItem);
self.item = playerItem;
[self addPlayerItemObservers:playerItem];
[self.player replaceCurrentItemWithPlayerItem:playerItem];
@@ -702,14 +708,25 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
}
case AVPlayerItemStatusFailed:
{
NSLog(@"Video player Status Failed: error = %@", self.player.currentItem.error);
NSLog(@"Video player Status Failed: player item error = %@", self.player.currentItem.error);
NSLog(@"Video player Status Failed: player error = %@", self.player.error);
NSError *error = self.player.error;
if (!error)
{
error = self.player.currentItem.error;
}
else
{
error = [NSError errorWithDomain:kVideoPlayerErrorDomain code:0 userInfo:@{NSLocalizedDescriptionKey : @"unknown player error, status == AVPlayerItemStatusFailed"}];
}
[self reset];
if ([self.delegate respondsToSelector:@selector(videoPlayer:didFailWithError:)])
{
[self reset];
dispatch_async(dispatch_get_main_queue(), ^{
[self.delegate videoPlayer:self didFailWithError:self.player.currentItem.error];
[self.delegate videoPlayer:self didFailWithError:error];
});
}
+25 -7
View File
@@ -40,21 +40,39 @@
[self detachPlayer];
}
- (instancetype)init
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super init];
self = [super initWithFrame:frame];
if (self)
{
_player = [[VIMVideoPlayer alloc] init];
_player.muted = YES;
_player.looping = YES;
[self attachPlayer];
[self commonInit];
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
[self commonInit];
}
return self;
}
- (void)commonInit
{
_player = [[VIMVideoPlayer alloc] init];
_player.muted = YES;
_player.looping = YES;
[self attachPlayer];
}
#pragma mark - Public API
- (void)setPlayer:(VIMVideoPlayer *)player