【问题标题】:How to stop a stream after .pipe()?如何在 .pipe() 之后停止流?
【发布时间】:2020-08-02 12:32:10
【问题描述】:
const speaker = new Speaker({
          channels: 2,
          bitDepth: 16,
          sampleRate: 44100,
          device: null,
        });

stream.pipe(speaker);

我需要它来中断播放声音。 Stream 是 Readable 的实例。

【问题讨论】:

  • 我想你可以打电话给stream.pause() 来暂停可读的继续流动。

标签: javascript node.js node-streams node-speaker


【解决方案1】:

stream.pipeline 声称可以处理“转发错误并正确清理并在管道完成时提供回调。”

语法

stream.pipeline(...streams, callback)
  • …流:这是两个或多个要通过管道连接在一起的流。
  • 回调:当管道完全完成时调用此函数,如果管道未完成则显示“错误”。

这是一个link 文档。

【讨论】:

  • 仅供参考,stream.pipeline() 不能完全正确地处理错误。这是来自文档的引用: stream.pipeline() 在调用回调后将悬空事件侦听器留在流上。在失败后重用流的情况下,这可能会导致事件侦听器泄漏和吞噬错误。
  • 我也不确定这如何回答所提出的问题。
  • 这取决于你。你认为你回答了他们提出的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
相关资源
最近更新 更多