我目前正在做的是在录制时从接收到的数据事件中获取字节并使用编解码器对字节进行编码。我设置的当前使用的编解码器是 ALaw、G722、GSM 等(如在NetworkChatDemo中)
用于开始录制的代码
If waveIn Is Nothing Then
waveIn = New WaveIn
waveIn.DeviceNumber = 0
waveIn.BufferMilliseconds = 100
waveIn.WaveFormat = codec.RecordFormat
waveIn.StartRecording()
End If
用于处理记录字节的代码
Private Sub OnDataAvailable(ByVal sender As Object, ByVal e As WaveInEventArgs) Handles waveIn.DataAvailable
Dim encoded As Byte() = codec.Encode(e.Buffer, 0, e.BytesRecorded)
...
//Send encoded audio over UdpClient
End Sub
这对我来说效果很好,但我想添加对 AAC 格式的支持。因此,我想获得与上述 DataReceived 事件相同的结果,即我可以通过 udp 发送的编码 AAC 音频的字节数组,来自MediaFoundationEncoder.EncodeToAac(...)
NAudio 中我不知道的其他类/函数。据我所知,MediaFoundationEncoder.EncodeToAac(...)
仅将音频编码为文件而不是字节数组。它也不接受字节数组作为参数。有没有办法实现我想要的,或者 NAudio 是否只允许我在完全录制和保存 AAC 文件后使用它?