Dot-Net

在 .NET Core 中錄製音頻

  • October 2, 2018

正如標題所示,我希望從 .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);
   }
}

編輯:基於ParrotOpenTK 範例中的項目。

引用自:https://stackoverflow.com/questions/52444748