Coder Social home page Coder Social logo

samirkumardas / another-libopus.js Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 4.0 274 KB

another liboups.js encoder - decoder

Makefile 16.58% JavaScript 83.42%
opus pcm opus-to-pcm pcm-to-opus opus-encoder opus-decoder opus-browser opus-javascript javascript emsdk

another-libopus.js's Introduction

Hi there ๐Ÿ‘‹

Zlienqwe's github stats

Top Langs

another-libopus.js's People

Contributors

samirkumardas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

another-libopus.js's Issues

My code's not working(decoder)

var sock = null;
var worker = new Worker("./js/decoder.js");
worker.onmessage = evt => {
    if (evt.data.type === "data") {
        console.log(evt.data.payload);
    } else {
        console.log(evt);
    }
};
worker.postMessage({
    type: "init",
    config: {
        sampleRate: 48000,
        channels: 1
    }
});
document.onkeydown = e => {
    if (e.key === "Backspace") {
        sock.close();
        window.close();
    }
};

sock = navigator.mozTCPSocket.open("127.0.0.1", 2049, {});
sock.onclose = e => {
    sock.send("BYEBYEBYE");
};
sock.onopen = e => {
    navigator.mediaDevices.getUserMedia({audio: true}).then(stream => {
        var opt = {audioBitsPerSecond: 48000};
        var mr = new MediaRecorder(stream, opt);
        mr.ondataavailable = ev => {
            new Response(ev.data).arrayBuffer().then(b => {
                worker.postMessage({
                    type: "decode",
                    buffer: b
                });/*
                var bb = new Float32Array(b);
                var s = "";
                for (let bbb of bb) {
                    bbb = Math.floor(32767 * bbb);
                    bbb = Math.min(32767, bbb);
                    bbb = Math.max(-32768, bbb);
                    s += String.fromCharCode(bbb);
                }
                sock.send(s);*/
            });
        };
        mr.start(30);
   });
};

Worker has been created successfully and code works till the line new Response but seems like postMessage does not work. I am using Firefox 48.

Multiple workers

I am tying to distribute load among multiple decoder workers:

var init_msg = {type: 'init', config: {sampleRate: 48000, channels: 2}};
var workers = [];
async function do_handle_mssg(e) {
switch (e.data.type) {
case 'error' :
console.log('decoding error ' + e.data.error);
break;
case 'data' :
player.feed(e.data.payload);
break;
default:
}
};
for (var j = 0; j < 10; j++) {
var worker = new Worker('workers/decoder.js');
workers.push(worker);
worker.onmessage = do_handle_mssg;
worker.postMessage( init_msg );
}
var crrnt_worker = 0;

and calling it with next code:

workers[crrnt_worker].postMessage({
type: 'decode',
buffer: dt
});
crrnt_worker = crrnt_worker + 1;
if( crrnt_worker > 9) {
crrnt_worker = 0;
}

Audio gets garbled. Am I doing something wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.