ホームページ >バックエンド開発 >C++ >Core Audio API を使用して Windows で特定のアプリケーションの音量をプログラムで制御するにはどうすればよいですか?

Core Audio API を使用して Windows で特定のアプリケーションの音量をプログラムで制御するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-19 23:02:13713ブラウズ

How Can I Programmatically Control the Volume of Specific Applications in Windows using the Core Audio API?

Windows Core Audio Library を使用して特定のアプリケーションの音量を制御します

要件: Windows ボリューム ミキサーを使用して、Firefox などの他のアプリケーションの音量を制御します。

実装:

Windows Core Audio Library は、オーディオ デバイスとセッションのプロパティにアクセスして変更する機能を提供します。このライブラリを利用すると、特定のアプリケーションのボリュームをプログラムで制御できます。以下は C# の実装例です:

<code class="language-csharp">using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;

namespace SetAppVolume
{
    class Program
    {
        static void Main(string[] args)
        {
            const string app = "Mozilla Firefox";

            // 获取所有活动音频应用程序的列表
            foreach (string name in EnumerateApplications())
            {
                Console.WriteLine("应用名称:" + name);
                if (name == app)
                {
                    // 获取当前应用程序的音量和静音状态
                    float? volume = GetApplicationVolume(app);
                    bool? mute = GetApplicationMute(app);

                    if (volume.HasValue && mute.HasValue)
                    {
                        Console.WriteLine($"当前音量: {volume:F0}%,静音状态: {mute}");

                        // 将应用程序音量调整为50%
                        SetApplicationVolume(app, 50);

                        // 静音应用程序
                        SetApplicationMute(app, true);

                        Console.WriteLine($"音量已设置为 50%,并已静音。");
                    }
                    else
                    {
                        Console.WriteLine("无法获取应用程序音量或静音状态。");
                    }
                }
            }
        }

        // ... (GetApplicationVolume, GetApplicationMute, SetApplicationVolume, SetApplicationMute, EnumerateApplications 函数保持不变) ...
    }
}</code>

このコードは、最初にアクティブなオーディオ アプリケーションをすべて列挙します。対象のアプリを見つけると、現在の音量とミュート状態を取得し、音量を 50% に設定してミュートします。 コードの堅牢性を強化するために、GetApplicationVolume および GetApplicationMute 戻り値の null チェックが追加され、エラー条件がそれに応じて処理されました。 EnumerateApplicationsGetApplicationVolumeGetApplicationMuteSetApplicationVolumeSetApplicationMute 関数の実装は元のテキストと同じであるため、ここでは再度説明しません。 このコードをコンパイルするために必要な COM 参照を追加していることを確認してください。

この改訂された応答は、エラー処理と有益なコンソール出力を追加することにより、より堅牢でユーザーフレンドリーな実装を提供します。このコードを正常にコンパイルして実行するために、必ず Core Audio API に必要な COM 参照を含めてください。

以上がCore Audio API を使用して Windows で特定のアプリケーションの音量をプログラムで制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。