.net - 在 .NET Core 中录制音频

标签 .net audio .net-core cross-platform

正如标题所示,我希望从 .NET Core 中的麦克风捕获音频。对我来说重要的是它是跨平台的。我已经在 Windows、Linux 和 OSX 上的 OpenCV 中进行了大量视频处理。音频对我来说是一块缺失的拼图。

最佳答案

OpenTK.NETCore 是一个非常好的 OpenTK 跨平台端口。

使用它的 AudioCapture我已经能够在不同的操作系统平台上捕获麦克风数据。

using (var audioCapture = new AudioCapture(_recorders.First(), _sampling_rate, ALFormat.Mono16, buffer_length_samples))
{
    audioCapture.Start();

    int available_samples = audioCapture.AvailableSamples;

    _buffer = _pool.Rent(MathHelper.NextPowerOfTwo((int)((available_samples * _sampleToByte / (double)BlittableValueType.StrideOf(_buffer)) + 0.5)));

    if (available_samples > 0)
    {
        audioCapture.ReadSamples(_buffer, available_samples);
    }
    else
    {
        _pool.Return(_buffer);
    }
}

编辑:基于 Parrot OpenTK 示例中的项目。

关于.net - 在 .NET Core 中录制音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52444748/

相关文章:

c# - 如何重命名一个mongodb数据库

.net - 禁用 ASP.NET 事件验证

c# - 模块化系统中的 EF Core

.net - CLR 存储过程中数据表上的 LINQ

c# - 如何读取 IMediaSample 24 位 PCM 数据

ios - 摇动设备时如何增加音量

将 m4a 转换为 WAV 的 iOS 代码

c# - 具有 services.AddIdentity 的 WebApi 授权属性返回 404 Not Found

c# - 如何通过派生类设置基类的所有属性

c# - IHTMLImgElement 到 byte[]