Я пытался воспроизвести функцию NAudio, которая позволяет обрабатывать вводимые пользователем данные, когда они доступны для обработки и подачи в Google API в виде байтового буфера [].
_waveIn.DataAvailable += ProcessAudio;
Метод ProcessAudio передает аудио буфер в API Google
private void ProcessAudio(object sender, WaveInEventArgs e)
{
if (canSend)
{
WriteAudioData(e.Buffer);
}
}
Затем передача буфера в Google API работает нормально.
Однако с приложением UWP приложение NAudio не работает, и поэтому япытаюсь использовать Audio Graph API для того же, но я хочу получить доступ к аудиоданным как байт [], а не байт *
Следующее приведено в следующем примере:
unsafe private AudioFrame ProcessAudioFrame(AudioMediaFrame audioMediaFrame)
{
using (AudioFrame audioFrame = audioMediaFrame.GetAudioFrame())
using (AudioBuffer buffer = audioFrame.LockBuffer(AudioBufferAccessMode.Read))
using (IMemoryBufferReference reference = buffer.CreateReference())
{
byte* dataInBytes;
uint capacityInBytes;
((IMemoryBufferByteAccess)reference).GetBuffer(out dataInBytes, out capacityInBytes);
}
}
Проблема заключается в получении dataInBytes как байтового массива, а не как dataInBytes *.
Затем я аналогично буду использовать байтовый массив и передавать его через API.
Итак, мой вопрос в том, что я думаю сделать правильно и как я могу использовать API Audio Graph, чтобы помочь решить эту проблему?
Спасибо