From 1f3c8eca5222bbcf716d019a07f19ce3e0004c36 Mon Sep 17 00:00:00 2001 From: Thong Nguyen Date: Wed, 10 Oct 2012 13:25:06 +0100 Subject: [PATCH] Fixed progress is incorrect when file finishes playing half way through. --- Audjustable/Classes/AudioPlayer/AudioPlayer.h | 3 ++- Audjustable/Classes/AudioPlayer/AudioPlayer.m | 19 +++++++++++++++++-- .../AudioPlayer/CoreFoundationDataSource.h | 2 +- .../AudioPlayer/CoreFoundationDataSource.m | 4 +++- Audjustable/Classes/AudioPlayer/DataSource.h | 2 +- Audjustable/Classes/AudioPlayer/DataSource.m | 2 +- .../Classes/AudioPlayer/HttpDataSource.h | 2 +- .../Classes/AudioPlayer/HttpDataSource.m | 2 +- .../Classes/AudioPlayer/LocalFileDataSource.h | 2 +- .../Classes/AudioPlayer/LocalFileDataSource.m | 2 +- 10 files changed, 29 insertions(+), 11 deletions(-) diff --git a/Audjustable/Classes/AudioPlayer/AudioPlayer.h b/Audjustable/Classes/AudioPlayer/AudioPlayer.h index 10be6ec..737c4ae 100644 --- a/Audjustable/Classes/AudioPlayer/AudioPlayer.h +++ b/Audjustable/Classes/AudioPlayer/AudioPlayer.h @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Inspired by Matt Gallagher's AudioStreamer: https://github.com/mattgallagher/AudioStreamer @@ -188,5 +188,6 @@ AudioQueueBufferRefLookupEntry; -(void) stop; -(void) flushStop; -(void) dispose; +-(NSObject*) currentlyPlayingQueueItemId; @end diff --git a/Audjustable/Classes/AudioPlayer/AudioPlayer.m b/Audjustable/Classes/AudioPlayer/AudioPlayer.m index 3435b1b..eb8697d 100644 --- a/Audjustable/Classes/AudioPlayer/AudioPlayer.m +++ b/Audjustable/Classes/AudioPlayer/AudioPlayer.m @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Inspired by Matt Gallagher's AudioStreamer: https://github.com/mattgallagher/AudioStreamer @@ -695,7 +695,10 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ if (currentlyPlayingEntry) { - currentlyPlayingEntry->bytesPlayed += bufferIn->mAudioDataByteSize; + if (!audioQueueFlushing) + { + currentlyPlayingEntry->bytesPlayed += bufferIn->mAudioDataByteSize; + } } int index = (int)bufferIn % audioQueueBufferRefLookupCount; @@ -1752,4 +1755,16 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ [self stopThread]; } +-(NSObject*) currentlyPlayingQueueItemId +{ + QueueEntry* entry = currentlyPlayingEntry; + + if (entry == nil) + { + return nil; + } + + return entry.queueItemId; +} + @end diff --git a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h b/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h index 1554223..e165b17 100644 --- a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h +++ b/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. diff --git a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m b/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m index b245328..2bfb96c 100644 --- a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m +++ b/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. @@ -49,6 +49,8 @@ static void ReadStreamCallbackProc(CFReadStreamRef stream, CFStreamEventType eve case kCFStreamEventHasBytesAvailable: [datasource dataAvailable]; break; + default: + break; } } diff --git a/Audjustable/Classes/AudioPlayer/DataSource.h b/Audjustable/Classes/AudioPlayer/DataSource.h index bb530f8..ad9f2d0 100644 --- a/Audjustable/Classes/AudioPlayer/DataSource.h +++ b/Audjustable/Classes/AudioPlayer/DataSource.h @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. diff --git a/Audjustable/Classes/AudioPlayer/DataSource.m b/Audjustable/Classes/AudioPlayer/DataSource.m index 51eeb05..ce0b2ca 100644 --- a/Audjustable/Classes/AudioPlayer/DataSource.m +++ b/Audjustable/Classes/AudioPlayer/DataSource.m @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. diff --git a/Audjustable/Classes/AudioPlayer/HttpDataSource.h b/Audjustable/Classes/AudioPlayer/HttpDataSource.h index 608165f..2e93250 100644 --- a/Audjustable/Classes/AudioPlayer/HttpDataSource.h +++ b/Audjustable/Classes/AudioPlayer/HttpDataSource.h @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. diff --git a/Audjustable/Classes/AudioPlayer/HttpDataSource.m b/Audjustable/Classes/AudioPlayer/HttpDataSource.m index 9a5185f..bedc934 100644 --- a/Audjustable/Classes/AudioPlayer/HttpDataSource.m +++ b/Audjustable/Classes/AudioPlayer/HttpDataSource.m @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. diff --git a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h b/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h index d51ac8a..047c562 100644 --- a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h +++ b/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. diff --git a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m b/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m index 30d4ca8..ae959d4 100644 --- a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m +++ b/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m @@ -2,7 +2,7 @@ AudioPlayer.m Created by Thong Nguyen on 14/05/2012. - http://http://code.google.com/p/bluecucumber + https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved.