在.NET Core中录制音频

Woj*_*icz 9 .net audio cross-platform .net-core

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

Woj*_*icz 4

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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