顾名思义,我正在寻找从.NET Core中的麦克风捕获音频的方法。对我来说重要的是它是跨平台的。我已经在Windows,Linux和OSX上的OpenCV中进行了很多视频处理。音频对我来说是一个难题。

最佳答案

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

使用AudioCapture类,我已经能够跨不同的OS平台捕获麦克风数据。

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);
    }
}

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

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

10-10 19:56