在Node.js中延迟流

时间:2015-10-05 23:53:25

标签: javascript node.js audio stream

我正在尝试在node.js中为Mumble(音频聊天程序)制作90秒延迟机器人。我正在使用node-mumble并一直在查看node-delayed-stream

所以我尝试使用:

mumble.connect( 'localhost:5432', function( error, connection ) {
    if( error ) { throw new Error( error ); }

    connection.authenticate('loopback-' + unique);
    connection.on( 'initialized', function() {
        var delayed = DelayedStream.create(connection.outputStream());
        setTimeout(function() {
            delayed.pipe(connection.inputStream());
        }, 5000);
    });
});

然而,如果没有人在说话,outputStream(流向bot的音频)会暂停,这意味着inputStream(输入音频到嘟嘟服务器)有时间赶上并最终会再次同步。

这是我想要的效果的想法,但可以想象出最差的质量:

mumble.connect( 'localhost:5432', function( error, connection ) {
    if( error ) { throw new Error( error ); }

    connection.authenticate('loopback-' + unique);
    connection.on( 'initialized', function() {
        connection.outputStream().on('data', function(d) {
            setTimeout(function() {
                connection.inputStream().write(d);
            }, 5000);
        });
    });
});

如何始终在流上保持平滑的X秒延迟?

0 个答案:

没有答案