         
         // 1 - Prepare VideoAssetTrack and DurationTimeRange for further use
         let videoAssetTrack = videoAsset.tracksWithMediaType(AVMediaTypeVideo).first as! AVAssetTrack
-       
+        
         let durationCMTime = CMTimeMakeWithSeconds(Float64(duration), 30)
         let durationTimeRange = CMTimeRangeMake(kCMTimeZero, durationCMTime)
         


public class VideoManipulateUtil {
    
    
    public class var sharedInstance: VideoManipulateUtil {
        struct Static {
            static let instance: VideoManipulateUtil = VideoManipulateUtil()

        exporter.exportAsynchronouslyWithCompletionHandler {
            
            let outputURL = exporter.outputURL
            
            switch (exporter.status) {
            case AVAssetExportSessionStatus.Completed:
                if isSaveToPhotosAlbum {
                    self.exportCompletionHandleSaveToAssetLibrary(outputURL, block: completionBlock)
                }else {
                    self.exportCompletionHandleNotSaveToAssetLibrary(outputURL, block: completionBlock)
                }
                break;
                
            case AVAssetExportSessionStatus.Failed:
                self.exportCompletionHandleWithError(-1, message: "Exporting Failed", block: completionBlock)
                break;
                
            case AVAssetExportSessionStatus.Cancelled:
                self.exportCompletionHandleWithError(-2, message: "Exporting Cancelled", block: completionBlock)
                break;
                
            default:
                self.exportCompletionHandleWithError(0, message: "Exporting Unkown error occured", block: completionBlock)
                break;
            }
            
