socket.io-stream在客户端和服务器端访问时都面临404问题

问题描述 投票:2回答:1

我试图使用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音频流相关的教程文章)。

javascript node.js sockets socket.io audio-streaming
1个回答
0
投票

你需要将文件公开到公共目录下

$ cp node_modules/socket.io-stream/socket.io-stream.js somewhere/public/

见。https:/github.comnkzawasocket.io-stream#浏览器。

© www.soinside.com 2019 - 2024. All rights reserved.