C#Core Audio API - 仅手动输入int工作

时间:2017-06-10 21:52:01

标签: c# .net windows audio

我正在使用Windows Core Audio API,其中包含来自Controlling Application's Volume: By Process-ID

的包装器

在此测试方法中,它设置应用程序的体积(通过ProcessID):

[TestMethod]
public void CanChangeVolume()
{
    VolumeMixer.SetApplicationVolume(19348, 50f);
}

如果我在代码中手动输入19348,则该功能可以正常工作。

但如果我传递一个动态值,就像这样......

[TestMethod]
public void CanChangeVolume()
{
    foreach (AudioSession session in AudioUtilities.GetAllSessions())
    {
        if (session.Process != null)
        {
            VolumeMixer.SetApplicationVolume(session.ProcessId, 50f);
        }
    }
}

...我收到Core Audio API的以下错误:

System.InvalidCastException: Unable to cast object of type 'MMDeviceEnumerator' to type 'RemoteVolume.Server.MMDeviceEnumerator'.

注意:打印session.ProcessId也正常工作......

例如:session.ProcessId = 8508VolumeMixer.SetApplicationVolume(8508, 50f)工作正常

0 个答案:

没有答案