feat: add macOS meeting audio capture

This commit is contained in:
dh
2026-08-06 08:16:54 +02:00
parent b3aeef24eb
commit 59ba70ca11
15 changed files with 1282 additions and 4 deletions
@@ -0,0 +1,30 @@
using Microsoft.Extensions.DependencyInjection;
namespace MeetingAssistant.Recording;
internal static class PortableMeetingAudioRegistration
{
public static void Add(IServiceCollection services)
{
Add(services, OperatingSystem.IsMacOS());
}
internal static void Add(IServiceCollection services, bool isMacOs)
{
if (!isMacOs)
{
services.AddSingleton<IMeetingAudioSource, UnavailableMeetingAudioSource>();
return;
}
services.AddSingleton<IMacOsAudioCaptureProcessFactory, MacOsAudioCaptureProcessFactory>();
services.AddSingleton<MacOsMicrophoneAudioSource>();
services.AddSingleton<MacOsSystemAudioSource>();
services.AddSingleton<IAcousticEchoCancellerFactory, AdaptiveFilterAcousticEchoCancellerFactory>();
services.AddSingleton<IMeetingAudioSource>(serviceProvider => new CompositeMeetingAudioSource(
serviceProvider.GetRequiredService<MacOsMicrophoneAudioSource>(),
serviceProvider.GetRequiredService<MacOsSystemAudioSource>(),
serviceProvider.GetRequiredService<IAcousticEchoCancellerFactory>(),
serviceProvider.GetRequiredService<ILogger<CompositeMeetingAudioSource>>()));
}
}