如何使用 C 检测麦克风是否正在使用#

How To Detect That Microphone Is In The Use Using C#

提问人:Smit Rathod 提问时间:6/15/2023 更新时间:6/16/2023 访问量:235

问:

我有一个 UWP 应用程序,我正在尝试检测任何应用程序是否使用麦克风。

这是从我的系统中获取麦克风的代码。

namespace CallDetector
{
    public sealed partial class MainPage : Page
    {
        private DispatcherTimer timer;
        private MediaCapture mediaCapture;
       
        public MainPage()
        {
            this.InitializeComponent();
            StartMicrophoneStatusCheckTimer();
        }

        private void StartMicrophoneStatusCheckTimer()
        {
            timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(5);
            timer.Tick += Timer_Tick;
            timer.Start();
        }

        private async void Timer_Tick(object sender, object e)
        {
            await CheckMicrophoneStatus();
        }

        private async Task CheckMicrophoneStatus()
        {
            var microphoneDevice = await GetMicrophoneDeviceAsync();

            if (microphoneDevice != null && microphoneDevice.IsEnabled)
            {
                var msg = new MessageDialog($"Microphone device found: {microphoneDevice.Name}");
                await msg.ShowAsync();
            }
            else
            {
                var msge = new MessageDialog("No microphone device found.");
                await msge.ShowAsync();
            }
        }

        private static async Task<DeviceInformation> GetMicrophoneDeviceAsync()
        {
            var microphoneSelector = MediaDevice.GetAudioCaptureSelector();
            var microphoneDevices = await DeviceInformation.FindAllAsync(microphoneSelector);
            return microphoneDevices.FirstOrDefault();
        }

    }
}

如何检测哪个应用程序使用麦克风(通过使用 UWP C#)?

.NET Xamarin C#-4.0 UWP-XAML

评论


答:

1赞 Junjie Zhu - MSFT 6/16/2023 #1

我检查了命名空间 Windows.Media.Devices 中的 API,目前没有 API 可以获取哪个应用程序正在使用麦克风。为了以防万一,我还检查了 Win32 音频会话事件,也无法获取哪个进程正在使用麦克风,它只能注册和接收某些特定会话事件的通知。

评论

0赞 Smit Rathod 6/16/2023
我也为此做了一些研究。但我没有发现任何帮助。
0赞 Dan 6/23/2023
您能否监控正在尝试或使用用于录制麦克风的 API 的任何正在运行的应用程序?以下是用于捕获音频的常见 API:learn.microsoft.com/en-us/previous-versions/windows/embedded/...