Maison >développement back-end >C++ >Comment puis-je contrôler par programme le volume d'applications spécifiques sous Windows à l'aide de l'API Core Audio ?

Comment puis-je contrôler par programme le volume d'applications spécifiques sous Windows à l'aide de l'API Core Audio ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-19 23:02:13666parcourir

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

Contrôlez le volume d'applications spécifiques à l'aide de la bibliothèque audio Windows Core

Exigences : Utilisez Windows Volume Mixer pour contrôler le volume d'autres applications telles que Firefox.

Mise en œuvre :

La bibliothèque audio Windows Core fournit des fonctionnalités permettant d'accéder et de modifier les propriétés du périphérique audio et de la session. Nous pouvons utiliser cette bibliothèque pour contrôler par programme le volume d'une application spécifique. Voici un exemple d'implémentation en 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>

Le code énumère d'abord toutes les applications audio actives. Après avoir trouvé l'application cible, elle obtient le volume actuel et l'état de sourdine, puis règle le volume à 50 % et le coupe. Pour améliorer la robustesse du code, des vérifications nulles pour les valeurs de retour GetApplicationVolume et GetApplicationMute ont été ajoutées et les conditions d'erreur ont été traitées en conséquence. La mise en œuvre des fonctions EnumerateApplications, GetApplicationVolume, GetApplicationMute, SetApplicationVolume, SetApplicationMute reste la même que le texte original et ne sera pas décrite à nouveau ici. Veuillez vous assurer d'avoir ajouté les références COM nécessaires pour compiler ce code.

Cette réponse révisée fournit une implémentation plus robuste et plus conviviale en ajoutant une gestion des erreurs et une sortie de console informative. N'oubliez pas d'inclure les références COM nécessaires à l'API Core Audio pour compiler et exécuter ce code avec succès.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn