如何从socket.io事件中播放声音?

16 浏览
0 Comments

如何从socket.io事件中播放声音?

每当按下空格键时,我想在客户端播放一个声音文件。\n客户端在按下空格键时成功地发出了“bang”事件:\n

$(window).keydown(function(event){
    alert(event.keyCode);
if (event.keyCode == 32){
        socket.emit('bang'); 
}
});

\n服务器端成功地在control.log中打印出“bang”,所以希望它也在发出\'play\':\n

io.on('connection', function(socket){
  socket.on('bang', function(){
    console.log('bang');
    io.emit('play');
  });
});

\n然而,在客户端上播放声音时,什么都没有发生。\n我使用的代码是:\n

var sound = new Audio('/public/audio/1.mp3');   
socket.on('play', function () {
    sound.play();   
});

\n我需要在body中包含与音频相关的东西或者使用Audio对象吗?\n我已经非常仔细地搜索了这个问题,但我对node.js、html和socket.io非常陌生。\n我尝试了这里给出的建议:\nPlay Audio from client when message is recieved from socket.io - node.js\n但当我输入:\n

app.use('/public', express.static('/path/to/public'));

\n\'static\'被标记了,并且在尝试运行代码时收到了一个错误消息:“express未定义”,尽管我在之前放置了它:\n

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

\n如那个帖子中建议的那样。我也尝试了之后,得到了同样的错误。\n请帮助我。

0