【发布时间】:2017-12-15 07:50:06
【问题描述】:
我有一个 python 脚本,它每 170 毫秒生成一个音频缓冲区。 这个缓冲区通过套接字实时发送到我的 JS 程序。 我现在正在尝试实时播放缓冲区的声音。
我每次收到东西时都尝试创建一个新的 JS AudioBuffer,但这样做会导致很多口吃。
var net = require('net');
var client = new net.Socket();
client.connect(8484, '127.0.0.1', function() {
console.log('Connected');
});
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var channels = 1;
client.on('data', function(data) {
// clean data (each buffer has a length of 1350)
var array = String(data).split(";");
for (var i = 0; i < array.length; i++)
array[i] = parseFloat(array[i])
// play the small buffer
var buf = audioCtx.createBuffer(channels, array.length, 16000);
var buffering = buf.getChannelData(0);
for (var i = 0; i < array.length; i++)
buffering[i] = array[i];
var source = audioCtx.createBufferSource();
source.buffer = buf;
source.connect(audioCtx.destination);
source.start();
});
我也尝试了 web-audio-stream API,但它显示了一条错误消息。
谢谢
【问题讨论】:
标签: javascript audio web-audio-api