From 6d00aa0dfffdffec1e830409cc696b182db4ca84 Mon Sep 17 00:00:00 2001 From: derpoliuk Date: Tue, 28 Mar 2017 17:20:21 +0300 Subject: [PATCH] Fix playback after seek (#273) Use estimated byte offset (if available) instead of calculated byte offset --- StreamingKit/StreamingKit/STKAudioPlayer.m | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/StreamingKit/StreamingKit/STKAudioPlayer.m b/StreamingKit/StreamingKit/STKAudioPlayer.m index 46affb4..b849571 100755 --- a/StreamingKit/StreamingKit/STKAudioPlayer.m +++ b/StreamingKit/StreamingKit/STKAudioPlayer.m @@ -1497,14 +1497,8 @@ static void AudioFileStreamPacketsProc(void* clientData, UInt32 numberBytes, UIn error = AudioFileStreamSeek(audioFileStream, seekPacket, &packetAlignedByteOffset, &ioFlags); - if (!error && !(ioFlags & kAudioFileStreamSeekFlag_OffsetIsEstimated)) + if (!error && (ioFlags & kAudioFileStreamSeekFlag_OffsetIsEstimated)) { - double delta = ((seekByteOffset - (SInt64)currentEntry->audioDataOffset) - packetAlignedByteOffset) / calculatedBitRate * 8; - - OSSpinLockLock(¤tEntry->spinLock); - currentEntry->seekTime -= delta; - OSSpinLockUnlock(¤tEntry->spinLock); - seekByteOffset = packetAlignedByteOffset + currentEntry->audioDataOffset; } }