             }
             
             DispatchQueue.main.async {
-                self.reachedEnd = self.currentPlayerPosition ?? .zero >= endFrame
+                self.segmentCompleted = self.currentPlayerPosition ?? .zero >= endFrame
                 self.stop()
             }
         }

        //shared queue not available until init time
        _playerScheduled = AtomicAccessor(wrappedValue: false, queue: stateQueue)
        _pausePosition = AtomicAccessor(wrappedValue: kTrackHeadFramePosition, queue: stateQueue)
        _reachedEnd = AtomicAccessor(wrappedValue: false, queue: stateQueue)
        _inSeek = AtomicAccessor(wrappedValue: false, queue: stateQueue)
    }
    

        seekPosition = kTrackHeadFramePosition
        pausePosition = kTrackHeadFramePosition
        interrupted = false
        segmentCompleted = false
    }
    
    private func _meter() {
