KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have problems streaming MP3 data via WebSocket with node.js and socket.io. Everything seems to work but decodeAudioData doesn't play fair with me. This is my toy server: var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(8081); function handler (req, res) { res.writeHead(200, { 'Content-Type': 'text/html', }); res.end('Hello, world!'); } io.configure('development', function() { io.set('log level', 1); io.set('transports', [ 'websocket' ]); }); io.sockets.on('connection', function (socket) { console.log('connection established'); var readStream = fs.createReadStream("test.mp3", {'flags': 'r', 'encoding': 'binary', 'mode': 0666, 'bufferSize': 64 * 1024}); readStream.on('data', function(data) { console.log(typeof data); console.log('sending chunk of data') socket.send(data); }); socket.on('disconnect', function () { console.log('connection droped'); }); }); console.log('Server running at http://127.0.0.1:8081/'); The client receives the data as type string but I want to feed the data to decodeAudioData and it seems it doesn't like strings. The call to decodeAudioData results in the following error message: Uncaught Error: SYNTAX_ERR: DOM Exception 12 I think decodeAudioData needs the data stored in an ArrayBuffer. Is there a way to convert the data? This is the client code: <script src="http://127.0.0.1:8081/socket.io/socket.io.js"></script> <script> var audioBuffer = null; var context = null; window.addEventListener('load', init, false); function init() { try { context = new webkitAudioC
Tags (comma-separated)
Save Edits
Cancel