vishnugh Ответов: 1

Аудиозапись непосредственно сохранить базу данных


<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="https://cdn.webrtc-experiment.com/commits.js"></script>
    <script src="https://cdn.WebRTC-Experiment.com/MediaStreamRecorder.js"></script>
    <script src="https://cdn.WebRTC-Experiment.com/gumadapter.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>




    <script>

        function captureUserMedia(mediaConstraints, successCallback, errorCallback) {
            navigator.mediaDevices.getUserMedia(mediaConstraints).then(successCallback).catch(errorCallback);
        }

        var mediaConstraints = {
            audio: true
        };
        document.querySelector('#save-recording').onclick = function () {
            this.disabled = true;
            mediaRecorder.save();
            // alert('Drop WebM file on Chrome or Firefox. Both can play entire file. VLC player or other players may not work.');
        };
        function startRecording(idx) {
            $('#start-recording').disabled = true;
            audiosContainer = document.getElementById('audios-container');
            document.getElementById("clicks").innerHTML = "Recording Started";

            var f = document.getElementById('clicks');
            setInterval(function () {
                f.style.display = (f.style.display == 'none' ? '' : 'none');
            }, 1000);

            captureUserMedia(mediaConstraints, onMediaSuccess, onMediaError);
        };

        function stopRecording() {
            $('#stop-recording').disabled = true;

            document.getElementById("clicks").innerHTML = "Recording Stopped";

            var f = document.getElementById('clicks');
            setInterval(function () {
                f.style.display = (f.style.display == 'none' ? '' : 'none');
            }, 1000);
            mediaRecorder.stop();
            mediaRecorder.stream.stop();


            $('.start-recording').disabled = false;
        };

        function saveRecording() {
            mediaRecorder.save();
        };

        var mediaRecorder;

        function onMediaSuccess(stream) {
            mediaRecorder = new MediaStreamRecorder(stream);
            mediaRecorder.stream = stream;
            mediaRecorder.mimeType = 'audio/wav';
            mediaRecorder.audioChannels = 1;
            mediaRecorder.ondataavailable = function (blob) {
                $('#record-audio').html("<audio controls=''><source src=" + URL.createObjectURL(blob) + "></source></audio>");
            };

            var timeInterval = 360 * 1000;

            mediaRecorder.start(timeInterval);

            $('#stop-recording').disabled = false;
        }

        function onMediaError(e) {
            console.error('media error', e);
        }

        function bytesToSize(bytes) {
            var k = 1000;
            var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
            if (bytes === 0) return '0 Bytes';
            var i = parseInt(Math.floor(Math.log(bytes) / Math.log(k)), 10);
            return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];
        }

        function getTimeLength(milliseconds) {
            var data = new Date(milliseconds);
            return data.getUTCHours() + " hours, " + data.getUTCMinutes() + " minutes and " + data.getUTCSeconds() + " second(s)";
        }

        window.onbeforeunload = function () {
            $('#start-recording').disabled = false;
        };


 
    </script>


</head>
<body>

    <button class="btn btn-primary" id="start-recording" onclick="startRecording()">Recording Start</button>
    <button class="btn btn-default" id="stop-recording" onclick="stopRecording()">Stop</button>
    <button class="btn btn-default" id="save-recording" onclick="saveRecording()">Save</button>
    <div id="record-audio"></div>
    <span id="clicks">0</span>
 
</body>
</html>


Что я уже пробовал:

How to Audio Recording Directly save database please Help me not file we have path only how to retrieve 

1 Ответов

Рейтинг:
1

Vincent Maverick Durano

Я просмотрел официальный документ здесь: GitHub - streamproc/MediaStreamRecorder[^] и кажется, что Save() имеет перегруженный метод, который позволяет бросить Blob-данных. Затем вы можете создать API, который принимает данные blob-объектов и сохраняет их в своей базе данных с помощью вызова AJAX.

Чтобы получить прямую поддержку от этой библиотеки, я бы рекомендовал вам открыть выпуск для их официального РЕПО здесь: Проблемы · streamproc/MediaStreamRecorder · GitHub[^]