Я пытался создать поток mp3 (уже добавил файл .mp3 на моем компьютере) с помощью socket.io-stream и получить к нему доступ, используя файл client.html.
После установки socket.io-stream с npm и запуском, появляется сообщение об ошибке ниже в консоли chrome:
http://localhost:5001/socket.io-stream/socket.io-stream.js net :: ERR_ABORTED 404 (не найдено)
и
Uncaught ReferenceError: ss не определено
Вот мой файл client.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>bb</title>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script src="/socket.io-stream/socket.io-stream.js"></script>
<h1>Audio Testing 1 2 3</h1>
<audio id="audio" controls>
<source src="" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<br>
<script>
var socket = io('http://localhost:' + window.location.port);
var audio = document.getElementById('audioSource');
console.log("hoi");
socket.on('start', function (data) {
console.log("start");
console.log(data);
// socket.emit('my other event', { my: 'data' });
socket.emit('stream', { my: 'data' });
console.log("");
ss(socket).on('audio-stream', function(stream, data) {
parts = [];
console.log("DATA -->> ")
stream.on('data', (chunk) => {
console.log(chunk);
parts.push(chunk);
});
stream.on('end', function () {
var audio = document.getElementById('audio');
audio.src = (window.URL || window.webkitURL).createObjectURL(new Blob(parts));
audio.play();
});
});
});
</script>
</body>
</html>
Вот мой файл server.js
var express = require('express');
var app = express();
var server = require('http').Server(app);
var fs = require('fs');
var io = require('socket.io')(server);
var ss = require('socket.io-stream');
app.use(express.static(`${__dirname}/html`));
server.listen('5001');
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index2.html');
});
io.on('connection', function (socket) {
socket.emit('start', { hello: 'world' });
socket.on('stream', function (data) {
console.log(data);
var stream = ss.createStream();
var filename = __dirname + '/audio/musicfile.mp3' ;
ss(socket).emit('audio-stream', stream, { name: filename });
fs.createReadStream(filename).pipe(stream);
});
});
Также, пожалуйста, предложите любые указатели (последние уроки / статьи, связанные с потоковой передачей звука через сокеты).