Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to stream the blob

I am developing a radio system with a microphone, the system admin will speak into the microphone and the audio will be transmitted in real time to the User ... I'm newbie using node.js and I'm unsure of how to make the stream the audio from the microphone to the User ... can anyone help me?

I have the following problem, I have the audio from the microphone being recorded in a blob and I need to know how to stream live this blob ...

I do not have code to show only gives audio recording ...

    <script>
        function getByID(id) {
            return document.getElementById(id);
        }

        var recordAudio = getByID('record-audio'),
            stopRecordingAudio = getByID('stop-recording-audio');

        var audio = getByID('audio');


        var audioConstraints = {
            audio: true,
            video: false
        };

    </script>
    <script>
        var audioStream;
        var recorder;

        recordAudio.onclick = function() {
            if (!audioStream)
                navigator.getUserMedia(audioConstraints, function(stream) {
                    if (window.IsChrome) stream = new window.MediaStream(stream.getAudioTracks());
                    audioStream = stream;

                    audio.src = URL.createObjectURL(audioStream);
                    audio.muted = true;
                    audio.play();

                    // "audio" is a default type
                    recorder = window.RecordRTC(stream, {
                        type: 'audio'
                    });
                    recorder.startRecording();
                }, function() {
                });
            else {
                audio.src = URL.createObjectURL(audioStream);
                audio.muted = true;
                audio.play();
                if (recorder) recorder.startRecording();
            }

            window.isAudio = true;

            this.disabled = true;
            stopRecordingAudio.disabled = false;
        };


        stopRecordingAudio.onclick = function() {
            this.disabled = true;
            recordAudio.disabled = false;
            audio.src = '';

            if (recorder)
                recorder.stopRecording(function(url) {
                    audio.src = url;
                    audio.muted = false;
                    audio.play();

                    document.getElementById('audio-url-preview').innerHTML = '<a href="' + url + '" target="_blank">Recorded Audio URL</a>';

                });
        };

    </script>
like image 330
Alan PS Avatar asked Nov 01 '22 22:11

Alan PS


1 Answers

I am no expert but I recalled that there are few articles about capturing audio on the html5rocks.

http://updates.html5rocks.com/2012/01/Web-Audio-FAQ http://www.html5rocks.com/en/tutorials/getusermedia/intro/#toc-webaudio-api

You should try to search in the npm library. I think it might have some streaming node modules. (Starting develop from a core node.js API is really hard, i couldn't figured it out too.)

Also take a look at this:
Node.js synchronized audio streaming between server and clients?

and here is node modules for sending binary data (i think it's support streaming a blob): http://binaryjs.com/

Hoped these helps!

like image 68
sancowinx Avatar answered Nov 08 '22 03:11

sancowinx