从通量转换为单声道

Posted

技术标签:

【中文标题】从通量转换为单声道【英文标题】:Convert from Flux to Mono 【发布时间】:2017-06-20 15:59:19 【问题描述】:

我怎样才能从一个有 1 个元素的 Flux 转换为一个 Mono?

Flux.fromArray(arrayOf(1,2,1,1,1,2))
                .distinct()
                .take(1)

如何使它成为 Mono(1)?

【问题讨论】:

【参考方案1】:

您可以使用next(),而不是take(1)

这会将Flux 转换为有价值的Mono,方法是获取第一个发射的项目,或者如果 Flux 本身为空,则为空的 Mono。

【讨论】:

【参考方案2】:

这是一个列表:

如果Flux 中有一个元素,Flux#single 将起作用。例如:flux.take(1).single();

Flux#next 将为您提供第一个元素。例如:flux.next();

Flux#last 最后一个元素。例如:flux.last();

Flux#singleOrEmpty 类似于Optional。例如:flux.take(0).singleOrEmpty();

Flux#collect,这取决于用例。

  flux.collect(Collectors.reducing((i1, i2) -> i1))
      .map(op -> op.get());

Flux#elementAt 用于第 i 个索引。例如:flux.elementAt(1);

Flux#shareNext 表示第一个找到的元素。 flux.shareNext();

Flux#reduce 用于减少操作。例如:flux.reduce((i1,i2) -> i1);

【讨论】:

【参考方案3】:

或者,您可以在过滤后的 Flux 上使用 single()

【讨论】:

以上是关于从通量转换为单声道的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中将 WAV 从立体声转换为单声道?

我是不是需要将立体声音频转换为单声道以进行 FFT?

如何将通量元素转换为键映射单声道

将wav文件转换为单声道

Python将立体声.flac转换为单声道

在Javascript中将立体声音频转换为单声道