c# - 处理字节数组,因为用户仍在使用音频图形 API 从 UWP 应用程序中的麦克风讲话
问题描述
我一直在尝试复制 NAudio 的一项功能,该功能允许在用户输入可被处理并作为 byte[] 缓冲区输入 Google API 时处理用户输入。
_waveIn.DataAvailable += ProcessAudio;
ProcessAudio 方法将音频缓冲区传递给 Google API
private void ProcessAudio(object sender, WaveInEventArgs e)
{
if (canSend)
{
WriteAudioData(e.Buffer);
}
}
然后将缓冲区传递给 Google API 工作正常。
但是,使用 UWP 应用程序时,NAudio 不起作用,因此我尝试使用 Audio Graph API 来做同样的事情,但我想以 byte[] 而不是 byte* 的形式访问音频数据
以下内容来自我一直关注的示例:
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。
所以我的问题是,我想做的事情是正确的吗?我如何使用 Audio Graph API 来帮助解决这个问题?
谢谢
解决方案
推荐阅读
- node.js - 有没有一种有效的方法来获得成员 discord.js 的最稀有角色
- python - 如何解决 heroku flask 应用程序上的应用程序错误?
- visual-studio - 如何从 Visual Studio 将参数传递给 MSBuild?
- android - 适用于 Android 11 目标的离线提醒通知应用程序(Google Keep 之类)。应用关闭时如何接收通知?
- c# - 在asp.net中将大量数据从视图发送到控制器
- c# - Blazor 如何使用获取请求
- function - Flutter/cloud_firestore:未为 Map 类型定义运算符“[]”
功能() - reactjs - useState 的问题 - 修改后的状态没有立即反映
- latex - 在 Beamer 演示文稿中插入 Jypyter Lab 代码片段
- python-3.x - 为 CDC Wonder API 抓取用户门户