     /// Triggered when the player reaches the end of its playing range
     fileprivate func internalCompletionHandler() {
         if playing {
-            if looping {
-                scheduleBuffer()
-            } else {
-                stop()
-                completionHandler?()
-            }
+            stop()
+            completionHandler?()
         }
     }
 }

    open dynamic var completionHandler: AKCallback?

    /// Boolean indicating whether or not to loop the playback
    open dynamic var looping: Bool = false

    /// Boolean indicating to play the buffer in reverse
    open dynamic var reversed: Bool = false {

        AudioKit.engine.detach(internalPlayer)
    }

    fileprivate var defaultBufferOptions: AVAudioPlayerNodeBufferOptions {
        return looping ? [.loops, .interrupts] : [.interrupts]
    }

    // MARK: - Methods

    /// Start playback
