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

        AudioKit.engine.detach(internalPlayer)
    }

    // MARK: - Methods

    /// Start playback

                // schedule it at some point in the future / or immediately if 0
                // don't schedule the buffer if it is paused as it will overwrite what is in it
                if !paused {
                    scheduleBuffer(atTime: scheduledAVTime, options: defaultBufferOptions)
                }

                playing = true
