Uncaught не удалось загрузить инициализатор памяти Mp3LameEncoder.min.js.mem - PullRequest
0 голосов
/ 13 декабря 2018

Я работал над проектом, в котором мне нужно было записать голос с микрофона и загрузить его на веб-сервер.Я хочу это в формате .mp3.Для этого прошли этот урок .

Он отлично работает в конце с demo , но когда я использовал ту же кодировку и все файлы при условии, что это показывает мне ошибку на локальном хосте, а также в Интернете.

Uncaught не удалось загрузить инициализатор памяти Mp3LameEncoder.min.js.mem

Я работал в соответствии с ними и изменил коды на странице demo , но она не работает.

Я работаю в ASP.NET C # и использую Chrome в качестве моего пользовательского агента.

Моя файловая структура:

enter image description here

Вот пример кода:

<script>
    (function () {
        var audioContext, gumStream, recorder, input, encodingType, encodeAfterRecord = true, startRecording, stopRecording;

        URL = window.URL || window.webkitURL;

        var AudioContext = window.AudioContext || window.webkitAudioContext;

        //window.AudioContext = window.AudioContext || window.webkitAudioContext;

        navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;


        startRecording = function () {
            var constraints = { audio: true, video: false };
            navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
                audioContext = new AudioContext();
                gumStream = stream;
                input = audioContext.createMediaStreamSource(stream);
                //input.connect(audioContext.destination);
                encodingType = 'mp3';
                recorder = new WebAudioRecorder(input, {
                    workerDir: '/vendors/_war/',
                    encoding: encodingType,
                    numChannels:2
                });

                recorder.onComplete = function (recorder, blob) {
                    createDownloadLink(blob, recorder.encoding);
                    alert('recording done');
                }

                recorder.setOptions({
                    timeLimit: 120,
                    encodeAfterRecord: encodeAfterRecord,
                    ogg:{ quality: 0.5},
                    mp3: { bitRate: 160 }
                });

                recorder.startRecording();
            }).catch(function (err) {
                alert('Exception: ' + err);
            });
        };

        stopRecording = function () {
            gumStream.getAudioTracks()[0].stop();
            recorder.finishRecording();
        };

        $('#recordButton').on('click', function () {
            startRecording();
        });
        $('#stopButton').on('click', function () {
            stopRecording(true);
        });
    }).call(this);
    function createDownloadLink(blob, encoding) {

        var url = URL.createObjectURL(blob);
        var au = $('#au'); //document.createElement('audio');
        //var li = document.createElement('li');
        //var link = document.createElement('a');

        //add controls to the &amp;amp;lt;audio&amp;amp;gt; element
        au.controls = true;
        au.src = url;

        //link the a element to the blob
        //link.href = url;
        //link.download = new Date().toISOString() + '.' + encoding;
        //link.innerHTML = link.download;

        //add the new audio and a elements to the li element
        //li.appendChild(au);
        //li.appendChild(link);

        //add the li element to the ordered list
        //var recordingsList = $('#recordingsList');
        //recordingsList.appendChild(li);
    }
</script>

1 Ответ

0 голосов
/ 14 декабря 2018

В моем случае мне нужно было добавить MIME-типы для расширения .mem, которое я хотел бы использовать в веб-конфигурации:

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".mem" mimeType="text/html" />
    </staticContent>
</system.webServer>
...