winforms C#桌面窗体框架使用Windows.System

xa9qqrwz  于 2023-04-07  发布在  C#
关注(0)|答案(2)|浏览(170)

我没有使用UWP,这是一个使用.NET Framework的标准桌面应用程序。我希望使用以下内容,但这仅适用于UWP。
https://learn.microsoft.com/en-us/uwp/api/windows.system.launcher.launchuriasync?view=winrt-22621

[Windows.Foundation.Metadata.Overload("LaunchUriWithDataAsync")]
public static IAsyncOperation<bool> LaunchUriAsync(System.Uri uri, LauncherOptions options, ValueSet inputData);

当某人禁用了麦克风或关闭了访问权限时,我想将他们路由到要更改的正确位置。Zoom今天会执行此操作。

我找到的唯一可以执行此操作的地方是在UWP with Namespace中:Windows.System.
你有什么建议让我完成这项任务吗?

x6yk4ghg

x6yk4ghg1#

这只是打开了一个URL。具体来说,它打开了一个ms-settings:位置。在Framework中,您可以使用Process.Start()执行此操作:

System.Diagnostics.Process.Start("ms-settings:privacy-microphone")

我不确定这是否就是你想要的页面,但它应该足够接近你所需要的。

ttvkxqim

ttvkxqim2#

您可以使用NAudio库在C#中使用Windows麦克风。

using NAudio.Wave;

public class MicrophoneRecorder
{
    private WaveIn waveIn;
    private WaveFileWriter writer;

    public MicrophoneRecorder(string outputPath)
    {
        waveIn = new WaveIn();
        writer = new WaveFileWriter(outputPath, waveIn.WaveFormat);
        waveIn.DataAvailable += OnDataAvailable;
    }

    public void StartRecording()
    {
        waveIn.StartRecording();
    }

    public void StopRecording()
    {
        waveIn.StopRecording();
        writer.Dispose();
        writer = null;
    }

    private void OnDataAvailable(object sender, WaveInEventArgs e)
    {
        writer.Write(e.Buffer, 0, e.BytesRecorded);
    }
}

创建一个MicrophoneRecorder示例,调用StartRecording()开始录制,调用StopRecording()停止录制,并将录制的音频保存到指定输出路径的WAV文件中...

var recorder = new MicrophoneRecorder("output.wav");
recorder.StartRecording();

// Wait for some time while recording...
Thread.Sleep(10000);

recorder.StopRecording();

这将从Windows microphone10 seconds录制音频,并将录制的音频保存到当前目录中的output.wav

相关问题