【发布时间】:2016-12-12 00:01:32
【问题描述】:
我对 Haskell 有点陌生,作为一个初学者项目,我正在尝试制作一个小的音乐可视化工具。
我通常使用 ncmpcpp+mpd 作为音乐播放器,因此我有一个名为 pipe 的 fifo 将原始 PCM 数据发送到 /tmp/mpd.fifo。
我想做的是从此文件中读取固定数量的 PCM 样本,对该数据块执行 FFT,打印输出,然后重复。我查看了 Haskell 库中的 Data.Stream、Data.Bytestring,但无法弄清楚如何从命名管道中简单地获取固定大小的数据量。
我认为必须有一个简单的方法来做到这一点,我只是缺少/不明白一些东西,所以任何帮助表示赞赏。
【问题讨论】:
-
来自
Data.ByteString的hGet有什么问题?您可以指定要读取的字节数。 -
@Alec:你能把这个作为答案吗?添加如何从命名管道(我自己也不知道)获取
Handle也很好。 -
是的,它做到了!在使用您的 sn-p 完全弄清楚后,我将其发布为答案。