gpt4 book ai didi

audio - 是否可以同时(在NAudio中)从音频流缓冲区写入和播放?

转载 作者:行者123 更新时间:2023-12-03 00:52:08 26 4
gpt4 key购买 nike

我已经指出NAudio可能允许我这样做。但是,如果不能,我将感谢可以的图书馆建议。我目前在C#/ WPF中工作,但可以轻松调用其他C / C++库。

我正在接收音频样本(单声道)的连续缓冲区。类型:16位带符号整数。速率:16 kHz。
我将需要保留1-2个小时的缓冲区数据(230 MB)。我想将此缓冲区保存到磁盘,以便以后再检索。

需要能够在仍捕获的同时播放此缓冲区的部分内容,例如:

@0s, Buffer.StartRecording()
@30s, handle = Buffer.Play(20,25) //Plays the buffer from 20 - 25 s
@50s, handle1 = Buffer.Play(20,25)
@51s, handle2 = Buffer.Play(20,25) //Playing two parts of the buffer at the same time.
@52s, handle1.Stop() //Buffer1 stops playing after having played for 2 seconds.

我应该能够开始播放尚未完成的声音:
@0s, Buffer.StartRecording()
@25s, handle = Buffer.Play(20,30) //Plays the buffer from 20 - 30 s
@30s, //Buffer has played halfway through (currently, play marker is at 25 s
@35s, //Buffer playing finishes.

需要能够掩盖回放缓冲区的部分内容,例如:
bufferMaskStep = 1 //seconds
bufferMask = [1, 0, 0.5, 1, 0.1] //the volumes at each time step
Buffer.Play(20, 25, bufferMask, bufferMaskStep)

我看到NAudio提供了 WaveStream,但是显然不支持 WaveStream.Write。我可以自己管理追加到字节缓冲区,并在要播放它们时复制其中的节,但是我想知道是否有一种现成的解决方案。

我正在做的要点是制作循环踏板。

最佳答案

在NAudio中,BufferedWaveProvider被设计为使您可以在从中读取音频(例如从中播放),同时向其中添加音频(例如从声卡或通过网络接收到)。

关于audio - 是否可以同时(在NAudio中)从音频流缓冲区写入和播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19963720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com