मुझे वेबसॉकेट के माध्यम से node.js और socket.io के साथ एमपी 3 डेटा स्ट्रीम करने में समस्याएं हैं। सब कुछ काम करने लगता है लेकिन decodeAudioData मेरे साथ उचित नहीं खेलता है।वेबसाकेट्स के माध्यम से node.js और socket.io के साथ एमपी 3 डेटा स्ट्रीम कैसे करें?
यह मेरा खिलौना सर्वर है:
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/');
ग्राहक प्रकार स्ट्रिंग के रूप में डेटा प्राप्त लेकिन मैं decodeAudioData करने के लिए डेटा को खिलाने के लिए चाहते हैं और यह यह तार पसंद नहीं करता है लगता है। decodeAudioData करने के लिए कॉल निम्न त्रुटि संदेश में परिणाम:
Uncaught Error: SYNTAX_ERR: DOM Exception 12
मुझे लगता है कि decodeAudioData एक ArrayBuffer में संग्रहीत डेटा की जरूरत है। क्या डेटा को बदलने का कोई तरीका है? ,
<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 webkitAudioContext();
} catch(e) {
alert('Web Audio API is not supported in this browser');
}
}
function decodeHandler(buffer) {
console.log(data);
}
var socket = io.connect('http://127.0.0.1:8081');
socket.on('message', function (data) {
// HERE IS THE PROBLEM
context.decodeAudioData(data, decodeHandler, function(e) { console.log(e); });
});
</script>
आप इस समस्या का समाधान मिल गया है? – codeAnand
मुझे सॉकेट.io का उपयोग करके कोई समाधान नहीं मिला है। Socket.io के बिना समाधान के लिए अपना स्वयं का जवाब देखें। –
सॉकेट.io 1.0 में बाइनरी के लिए समर्थन है, मैं कोशिश करता हूं लेकिन काम नहीं करता है। इसके अलावा मैं websocket के साथ कोशिश करता हूं, लेकिन बिल्कुल एक ही त्रुटि के साथ। आपके पास इसका उदाहरण है कि आप इसे कैसे हल करते हैं? – cmarrero01