             let offset = windowTime * _currentPosition + initialOffset
 
             let targets = reverse(_assets[0...current.index])
-            if let resultAtZero = _positionAt(targets, offset: offset, reverseOrder: true) {
+            if let resultAtZero = _positionAt(targets, offset, true) {
                 indexAtZero = current.index - resultAtZero.0
                 timeAtZero = resultAtZero.1
             } else {

    func playerInfoForPosition(position: Float) -> (index:Int, time:CMTime)? {
        let lock = ScopedLock(self)

        if _assets.isEmpty { return nil }
        if _current == nil { return nil }


        // 2) 算出した0.0位置からexpectedOffsetを足した場所を調べて返す
        let targets = Array(_assets[indexAtZero..<_assets.endIndex])

        if let result = _positionAt(targets, offsetTime + timeAtZero, false) {
            return (result.0 + indexAtZero, result.1)
        } else {
            return nil
        }
    }

    /**
    サンプルバッファの生成
