From c9a75c3c87017891455000a6c71f96b0ce1d2f0e Mon Sep 17 00:00:00 2001 From: hubert Date: Fri, 1 Apr 2016 08:28:19 +0200 Subject: [PATCH 1/2] new: dev: start playing item from given moment --- Pod/Classes/AUMediaPlayer.h | 10 ++++++++++ Pod/Classes/AUMediaPlayer.m | 21 ++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/Pod/Classes/AUMediaPlayer.h b/Pod/Classes/AUMediaPlayer.h index cf9039f..7eb2507 100644 --- a/Pod/Classes/AUMediaPlayer.h +++ b/Pod/Classes/AUMediaPlayer.h @@ -215,6 +215,16 @@ typedef NS_ENUM(NSUInteger, AUMediaReceiverType){ * @param error Error is assigned when playback fails. */ - (void)playItem:(id)item error:(NSError * __autoreleasing *)error; + +/** + * Plays given item. + * + * @param item Item to play. + * @param moment Time in seconds, item will be sought to moment before starts playing + * @param error Error is assigned when playback fails. + */ +- (void)playItem:(id)item fromMoment:(double)moment error:(NSError * __autoreleasing *)error; + /** * Creates queue from mediaItems array of given collection and starts playing it starting from the first one. * diff --git a/Pod/Classes/AUMediaPlayer.m b/Pod/Classes/AUMediaPlayer.m index ec87da3..85483f6 100644 --- a/Pod/Classes/AUMediaPlayer.m +++ b/Pod/Classes/AUMediaPlayer.m @@ -112,13 +112,16 @@ - (void)setNowPlayingCover:(UIImage *)nowPlayingCover { #pragma mark Player actions - (void)playItem:(id)item error:(NSError *__autoreleasing *)error { - + [self playItem:item fromMoment:0 error:error]; +} + +- (void)playItem:(id)item fromMoment:(double)moment error:(NSError *__autoreleasing *)error { if (!item) { NSAssert(NO, @"You must provide an item to play"); return; } - [self updatePlayerWithItem:item error:error]; + [self updatePlayerWithItem:item time:moment error:error]; self.queue = @[item]; if (_receiver == AUMediaReceiverChromecast) { @@ -388,7 +391,7 @@ - (NSUInteger)queueLength { #pragma mark - #pragma mark Internal player methods -- (void)updatePlayerWithItem:(id)item error:(NSError * __autoreleasing*)error { +- (void)updatePlayerWithItem:(id)item time:(double)time error:(NSError * __autoreleasing*)error { NSParameterAssert([item uid]); [self prepareForCurrentItemReplacementWithItem:item]; @@ -414,7 +417,15 @@ - (void)updatePlayerWithItem:(id)item error:(NSError * __autoreleas return; } + // create player item AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithURL:url]; + + // time to seek + CMTime timeToSeek = CMTimeMakeWithSeconds(time, NSEC_PER_SEC); + + // seek to time + [playerItem seekToTime:timeToSeek]; + objc_setAssociatedObject(playerItem, AVPlayerItemAssociatedItem, item, OBJC_ASSOCIATION_RETAIN_NONATOMIC); if ([item itemType] == AUMediaTypeAudio) { @@ -464,6 +475,10 @@ - (void)updatePlayerWithItem:(id)item error:(NSError * __autoreleas [self updateNowPlayingInfoCenterData]; } +- (void)updatePlayerWithItem:(id)item error:(NSError * __autoreleasing*)error { + [self updatePlayerWithItem:item time:0.0 error:error]; +} + - (void)initPlaybackTimeObserver { double interval = .1f; From 2086650b3453eb7b7ed1f6f488784bd0e9b979dc Mon Sep 17 00:00:00 2001 From: Emil Wojtaszek Date: Mon, 24 Oct 2016 15:16:42 +0200 Subject: [PATCH 2/2] upgrade afnetworking --- AUMediaPlayer.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUMediaPlayer.podspec b/AUMediaPlayer.podspec index c2556c0..c409c93 100644 --- a/AUMediaPlayer.podspec +++ b/AUMediaPlayer.podspec @@ -30,7 +30,7 @@ Pod::Spec.new do |s| s.framework = 'GoogleCast' s.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '"${PODS_ROOT}/AUMediaPlayer/Frameworks/GoogleCastSDK-2.7.1-Release"' } - s.dependency 'AFNetworking', '> 2.3' + s.dependency 'AFNetworking' #s.dependency 'google-cast-sdk', '~>2.7.1' end