私が現在行っているのは、記録中にデータ受信イベントからバイトを取得し、バイトをコーデックでエンコードすることです。現在使用するように設定したコーデックは、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 形式のサポートを追加したいと考えています。MediaFoundationEncoder.EncodeToAac(...)
したがって、上記の DataReceived イベントと同じ結果、UDP 経由で送信できるエンコードされた AAC オーディオのバイト配列、または NAudio 内で認識していない別のクラス/関数と同じ結果を達成したいと考えています。私が知る限り、MediaFoundationEncoder.EncodeToAac(...)
オーディオのみをファイルにエンコードし、バイト配列にはエンコードしません。また、バイト配列をパラメーターとして受け入れません。私が望むものを達成する方法はありますか、それとも NAudio では AAC ファイルが完全に記録されて保存された後にしか作業できませんか?