     */
     public func playItems(items: [AudioItem]) {
         if items.count > 0 {
-            currentItem = items.first
-            currentItemIndexInQueue = 0
-
             var idx = 0
             enqueuedItems = items.map { (position: idx++, item: $0) }
+            adaptQueueToPlayerMode()
+
+            currentItem = enqueuedItems?.first?.item
+            currentItemIndexInQueue = 0
         }
         else {
             stop()

            }
        }

        if hasNext() {
            next()
        }
        else {

            let target = ClosureContainer(closure: { [weak self] sender in
                self?.adjustQualityIfNecessary()
                })
            let timer = NSTimer(timeInterval: adjustQualityTimeInternal, target: target, selector: "callSelectorOnTarget:", userInfo: nil, repeats: false)
            NSRunLoop.mainRunLoop().addTimer(timer, forMode: NSRunLoopCommonModes)
            qualityAdjustmentTimer = timer
        }
    }


    // MARK: Background

    /// The backround task identifier if a background task started. Nil if not.
    private var backgroundTaskIdentifier: Int?

    /**
    Starts a background task if there isn't already one running.
    */
