     
     private var sampleRate : Double = 1.0
     private var totalFrameCount : Int64
+    private var initialFrameCount : Int64 = -1
     
     /// Boolean indicating whether or not to loop the playback
     public var looping = false

            internalPlayer.scheduleBuffer(audioFileBuffer, atTime: nil, options: options, completionHandler: nil)
        }
        internalPlayer.play()
    }
    
    /// Pause playback

        internalPlayer.stop()
    }
    
    /// Current playback time (in seconds)
    public var currentTime : Double {
        
        if internalPlayer.playing {
            if let time = internalPlayer.lastRenderTime {
                // wrap the sampleTime by the totalFrameCount as sampleTime does not reset when audio loops.
                return Double( ( Int64(time.sampleTime - initialFrameCount) % totalFrameCount) ) / sampleRate
            }
        }
        return 0.0
