我试图使用socket.io-stream创建一个mp3流(已经在我的机器上添加了.mp3文件),并使用client.html文件访问它。
在安装了 socket.io-stream 用npm开始,在chrome控制台得到以下错误。
http:/localhost:5001socket.io-streamsocket.io-stream.js。 net::ERR_ABORTED 404 (Not Found)
和
未捕获的引用错误:没有定义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);
});
});
也请大家提出任何建议(最新的socket音频流相关的教程文章)。
你需要将文件公开到公共目录下
$ cp node_modules/socket.io-stream/socket.io-stream.js somewhere/public/