                 let out = target.output
                 if let sbuf = out.copyNextSampleBuffer() {
                     // 取得したサンプルバッファの情報で更新
-                    return (sbuf, target.frameInterval)
+                    return ( sbuf,
+                        CMSampleBufferGetPresentationTimeStamp(sbuf)+target.startTime,
+                        target.frameInterval )
                 } else {
                     println("move to next")
                     // 次のムービーへ移動

        return nil
    }

    private func _prepareNextAssetReader() {
        let lock = ScopedLock(self)

        // 読み込み済みリーダーの数が上限になっていれば何もしない

            return
        }

        // アセットをどこから読み込むかを引数に渡されたアセットで決定する
        let startIndex = (initial == nil) ? 0 : find(_assets, initial!) ?? 0
        // startTimeの設定は
        var startTime = time
println("startTime:\(startTime)")
        // 読み込みしていないアセットがあれば読み込む
        outer: for (i, asset) in enumerate(_assets[startIndex..<_assets.count]) {

            if _readers.isEmpty {
                if let assetreader = AssetReaderFragment(asset:asset, rate:_playbackRate, startTime:startTime) {
                    startTime = kCMTimeZero
                    _readers.append(assetreader)
                } else {
                    NSLog("Failed to instantiate a AssetReaderFragment.")
