前端通过websocket接收实时音频数据并显示波形图的完整代码
时间: 2023-08-15 20:07:13 浏览: 270
音频文件读取及显示波形图
3星 · 编辑精心推荐
以下是一个简单的前端实时音频数据通过 WebSocket 显示波形图的代码
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebSocket Audio Waveform</title>
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script src="https://cdn.jsdelivr.net/npm/wavesurfer.js"></script>
<style>
#waveform {
width: 100%;
height: 200px;
}
</style>
</head>
<body>
<div id="waveform"></div>
<script>
var socket = io.connect('http://localhost:3000'); // 连接 WebSocket 服务器
var wavesurfer = WaveSurfer.create({
container: '#waveform',
waveColor: 'violet',
progressColor: 'purple'
}); // 创建 WaveSurfer 实例
wavesurfer.loadBlob('demo.mp3'); // 加载示例音频文件
socket.on('audio', function (data) { // 监听 WebSocket 服务器发来的音频数据
wavesurfer.loadDecodedBuffer(data); // 解码并加载音频数据
});
</script>
</body>
</html>
```
在上面的代码中,我们用到了 Socket.IO 和 WaveSurfer.js 两个库,前者用于连接 WebSocket 服务器,后者用于显示音频波形图。
在 JavaScript 部分,我们首先连接 WebSocket 服务器,然后创建一个 WaveSurfer 实例,并加载示例音频文件。接着监听 WebSocket 服务器发来的音频数据,并在收到数据后解码并加载到 WaveSurfer 实例中以显示波形图。
需要注意的是,WebSocket 服务器需要实现实时音频数据的推送,具体实现方式因实际情况而异,这里不再赘述。
阅读全文