         // 一度取得したらnilに変わる
         if let nextBuffer = self._prepareNextBuffer() {
             // 現在時刻を更新
-            _currentPresentationTimestamp = CMSampleBufferGetPresentationTimeStamp(nextBuffer.sbuf)
-            return nextBuffer
+            _currentPresentationTimestamp = nextBuffer.presentationTimeStamp
+            return (nextBuffer.sbuf, nextBuffer.frameDuration)
         }
         return nil
     }

            return
        }

        // 読み込みしていないアセットがあれば読み込む
        outer: for (i, asset) in enumerate(_assets) {

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

    /**
    サンプルバッファの生成
    */
    private func _prepareNextBuffer() -> (sbuf:CMSampleBufferRef, presentationTimeStamp:CMTime, frameDuration:CMTime)? {

        // サンプルバッファを生成する
        while let target = _readers.first {
