如何从socket.io事件中播放声音?
如何从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请帮助我。