         } else if let file = file {
             playerNode.scheduleFile(file,
                                     at: when,
-                                    completionCallbackType: .dataPlayedBack) { _ in
+                                    completionCallbackType: completionCallbackType) { _ in
                 self.internalCompletionHandler()
             }
             scheduleTime = when ?? AVAudioTime.now()

    /// - Parameters:
    ///   - when: What time to schedule for. A value of nil means now or will
    ///   use a pre-existing scheduled time.
    public func play(at when: AVAudioTime? = nil) {
        guard !isPlaying || isPaused else { return }

        guard playerNode.engine != nil else {

        if when != nil { scheduleTime = nil }

        if !isScheduled {
            schedule(at: when, completionCallbackType: completionCallbackType)
        }

        playerNode.play()
