     private func _buildComposition(asset:AVAsset,
         startTime:CMTime=kCMTimeZero, var endTime:CMTime=kCMTimePositiveInfinity,
         rate:Float=1.0)
-        -> (reader:AVAssetReader!, duration:CMTime!, frameInterval:CMTime)!
+        -> (reader:AVAssetReader, duration:CMTime, frameInterval:CMTime)!
     {
         var error: NSError? = nil
 
         assert(rate>0.0, "Unable to set rate less than or equal to 0.0!!")
+
         // ビデオトラックを抽出
         /* durationを調べるためだけに使う */
         if asset.tracksWithMediaType(AVMediaTypeVideo).count == 0 {

        
        return nil
    }
}

        super.init()

        // リーダーとなるコンポジションを作成する
        if rate == HKLAVGaplessPlayerPlayRateAsIs {
            if let result = _buildAsIsComposition(asset, startTime:startTime, endTime:endTime, rate:rate) {
                _reader = result.reader
                _fragmentDuration = result.duration
                _frameInterval = result.frameInterval
            }
        } else {
            if let result = _buildComposition(asset, startTime:startTime, endTime:endTime, rate:rate) {
                _reader = result.reader
                _fragmentDuration = result.duration
                _frameInterval = result.frameInterval
            }
        }
        if _reader == nil {
            // 作成失敗
            NSLog("Failed to build a composition for asset.")
            return nil
        }
        _output = _reader.outputs.first as! AVAssetReaderOutput

        // 読み込み開始
        if self._reader.startReading() == false {
