| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | /* * jQuery File Upload Video Preview Plugin 1.0.3 * https://github.com/blueimp/jQuery-File-Upload * * Copyright 2013, Sebastian Tschan * https://blueimp.net * * Licensed under the MIT license: * http://www.opensource.org/licenses/MIT *//* jshint nomen:false *//* global define, window, document */(function (factory) {    'use strict';    if (typeof define === 'function' && define.amd) {        // Register as an anonymous AMD module:        define([            'jquery',            'load-image',            './jquery.fileupload-process'        ], factory);    } else {        // Browser globals:        factory(            window.jQuery,            window.loadImage        );    }}(function ($, loadImage) {    'use strict';    // Prepend to the default processQueue:    $.blueimp.fileupload.prototype.options.processQueue.unshift(        {            action: 'loadVideo',            // Use the action as prefix for the "@" options:            prefix: true,            fileTypes: '@',            maxFileSize: '@',            disabled: '@disableVideoPreview'        },        {            action: 'setVideo',            name: '@videoPreviewName',            disabled: '@disableVideoPreview'        }    );    // The File Upload Video Preview plugin extends the fileupload widget    // with video preview functionality:    $.widget('blueimp.fileupload', $.blueimp.fileupload, {        options: {            // The regular expression for the types of video files to load,            // matched against the file type:            loadVideoFileTypes: /^video\/.*$/        },        _videoElement: document.createElement('video'),        processActions: {            // Loads the video file given via data.files and data.index            // as video element if the browser supports playing it.            // Accepts the options fileTypes (regular expression)            // and maxFileSize (integer) to limit the files to load:            loadVideo: function (data, options) {                if (options.disabled) {                    return data;                }                var file = data.files[data.index],                    url,                    video;                if (this._videoElement.canPlayType &&                        this._videoElement.canPlayType(file.type) &&                        ($.type(options.maxFileSize) !== 'number' ||                            file.size <= options.maxFileSize) &&                        (!options.fileTypes ||                            options.fileTypes.test(file.type))) {                    url = loadImage.createObjectURL(file);                    if (url) {                        video = this._videoElement.cloneNode(false);                        video.src = url;                        video.controls = true;                        data.video = video;                        return data;                    }                }                return data;            },            // Sets the video element as a property of the file object:            setVideo: function (data, options) {                if (data.video && !options.disabled) {                    data.files[data.index][options.name || 'preview'] = data.video;                }                return data;            }        }    });}));
 |