123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- (function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
-
- define([
- 'jquery',
- 'load-image',
- './jquery.fileupload-process'
- ], factory);
- } else if (typeof exports === 'object') {
-
- factory(
- require('jquery'),
- require('load-image')
- );
- } else {
-
- factory(
- window.jQuery,
- window.loadImage
- );
- }
- }(function ($, loadImage) {
- 'use strict';
-
- $.blueimp.fileupload.prototype.options.processQueue.unshift(
- {
- action: 'loadAudio',
-
- prefix: true,
- fileTypes: '@',
- maxFileSize: '@',
- disabled: '@disableAudioPreview'
- },
- {
- action: 'setAudio',
- name: '@audioPreviewName',
- disabled: '@disableAudioPreview'
- }
- );
-
-
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
- options: {
-
-
- loadAudioFileTypes: /^audio\/.*$/
- },
- _audioElement: document.createElement('audio'),
- processActions: {
-
-
-
-
- loadAudio: function (data, options) {
- if (options.disabled) {
- return data;
- }
- var file = data.files[data.index],
- url,
- audio;
- if (this._audioElement.canPlayType &&
- this._audioElement.canPlayType(file.type) &&
- ($.type(options.maxFileSize) !== 'number' ||
- file.size <= options.maxFileSize) &&
- (!options.fileTypes ||
- options.fileTypes.test(file.type))) {
- url = loadImage.createObjectURL(file);
- if (url) {
- audio = this._audioElement.cloneNode(false);
- audio.src = url;
- audio.controls = true;
- data.audio = audio;
- return data;
- }
- }
- return data;
- },
-
- setAudio: function (data, options) {
- if (data.audio && !options.disabled) {
- data.files[data.index][options.name || 'preview'] = data.audio;
- }
- return data;
- }
- }
- });
- }));
|