 
                 // 算出した値なので、端数が出ないよう1/600スケールに丸めて返す
                 let time = CMTimeConvertScale(result.time, 600, .RoundHalfAwayFromZero)
-                return (result.index, time)
+                return AssetPosition(index: result.index, time: time)
             }
         }
         return nil

                    // 取得したサンプルバッファの指す時間位置が1.0を超えていなければ、
                    // 表示用としてサンプルバッファを返す
                    let pts = CMSampleBufferGetPresentationTimeStamp(sbuf) + target.startTime
                    let pos = getPositionOf(find(_assets, target.asset)!, time: pts)
                    if pos <= 1.0 + 0.02/*tolerance*/ {
                        return ( sbuf, pts, target.frameInterval )
                    }


    :returns: 再生位置(0.0-1.0)。値域外の場合はnilを返す
    */
    private func _getRelativePositionOf(index:Int, time:CMTime) -> Float? {
        let target = AssetPosition(index:index, time:time)

        /*
