0

好吧,这就是交易..

我正在通过 naudio WaveIn 方法从麦克风捕获音频流。现在这允许我将捕获的内容直接保存到 wav 文件中。

现在我希望这个 wav 不断上传到我的 ftp 帐户。即用户是来自麦克风的rec..他的输入被存储到一个文件中..这个文件正在上传到我的ftp。

我目前面临有关文件锁定的问题,这当然不允许我在写入的同时访问同一个文件。

如果您能建议我一种将我的流直接上传到我的 ftp 帐户且不涉及此文件问题的方法,我将不胜感激

这是我的记录代码:

  Dim recordingFormat As New WaveFormat(8000, 16, 1)
    writer = New WaveFileWriter("recorded.wav", recordingFormat)

    waveInStream = New WaveIn()
    waveInStream.DeviceNumber = 0
    waveInStream.WaveFormat = recordingFormat
    AddHandler waveInStream.DataAvailable, AddressOf waveInStream_DataAvailable
    waveInStream.StartRecording()

并不断将流保存到文件中:

 writer.Write(e.Buffer, 0, e.BytesRecorded)

我希望将这个 ^ 直接送入 ftp 缓冲区。

任何帮助将不胜感激。蒂亚!

4

2 回答 2

0

看起来您需要一个计时器来在一分钟内停止录制一次,构建 wav 文件,然后在上传创建的波形文件时再次开始录制。

您可以使用net框架本身的上传机制来简单地上传文件。

我认为您每分钟都会错过 1 秒,还不错。

于 2013-08-15T08:37:43.610 回答
0

您无法在创建 WAV 文件时将其上传到 FTP 服务器。WAV 文件在其标题中包含一些块大小,这些大小在您完成创建 WAV 文件之前不会填充。

此外,您还没有说明您使用什么来将文件上传到 FTP,但我希望大多数 FTP 文件上传器不支持在上传时传输的文件大小增加。

于 2013-06-24T10:34:48.733 回答