app.factory('mdWavesurferUtils', [

        '$q',

        '$document',

        '$timeout',

        function($q, $document, $timeout) {

            return {

                getLength: function(object) {

                    let deferred = $q.defer();

                    let estimateLength = function(url) {

                        let audio = $document[0].createElement('audio');

                        audio.src = url;

                        audio.addEventListener(

                            'loadeddata',

                            function listener() {

                                deferred.resolve(this.duration);

                                audio.removeEventListener(

                                    'loadeddata',

                                    listener

                                );

                                audio.src = 'data:audio/mpeg,0'; //destroy loading.

                            }

                        );


                        audio.addEventListener('error', function(e) {

                            deferred.resolve(e.target.error);

                        });

                    };


리애트임?