                 if let pos = _getPositionOf(_assets.indexOf({$0.asset == target.asset})!, time: pts) {
                     // 現在のプレゼンテーション時間を更新
                     _currentPresentationTimestamp = pts
+                    position = pos // FIXME: Streamingだと、この設定は問題があった記憶が
                     return ( sbuf, pts, target.frameInterval )
                 }
             } else {


        if _assets.isEmpty || _readers.isEmpty { return nil }

        // 現在の再生場所を起点にしてposition=1.0地点を探索する
        if let i_t1 = self._assets.indexOf({$0.asset == self._readers.first!.asset}) {

            let t1 = AssetPosition(i_t1, _currentPresentationTimestamp)
            let offset = window * (1.0 - position)

            if let windowEnd = _findAsset(_assets, from: t1, offset: offset) {
                return windowEnd
            } else {
                // 見つからなかった場合、全アセットの最後端を1.0として扱う
                return AssetPosition(_assets.count-1, _assets.last!.asset.duration)
            }
        }
        return nil
    }

        let keys = ["duration","tracks", "preferredTransform"]
        asset.loadValuesAsynchronouslyForKeys(keys) {
            self._duration = asset.duration

            producer.amountDuration += self._duration!
        }
    }
    private var _duration: CMTime? = nil
