8 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
2 changed files with 32 additions and 23 deletions
+9 -2
View File
@@ -9,7 +9,7 @@
Pod::Spec.new do |s|
s.name = "VIMVideoPlayer"
s.version = "5.5.3"
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
+23 -21
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];
@@ -705,26 +711,22 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
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(), ^{
if (self.player.error)
{
[self.delegate videoPlayer:self didFailWithError:self.player.error];
}
else if (self.player.currentItem.error)
{
[self.delegate videoPlayer:self didFailWithError:self.player.currentItem.error];
}
else
{
NSError *error = [NSError errorWithDomain:kVideoPlayerErrorDomain code:0 userInfo:@{NSLocalizedDescriptionKey : @"unknown player error, status == AVPlayerItemStatusFailed"}];
[self.delegate videoPlayer:self didFailWithError:error];
}
[self.delegate videoPlayer:self didFailWithError:error];
});
}