C++/C# 应用程序音频操作

问题描述

在四处搜索并尝试了一些东西之后,我已经没有想法了。首先,我想通过操纵各自的通道音量来操纵正在运行的应用程序的音频输出。我在 C# 中使用 Cscore 作为包装器,这也是我的失败点。

添加 IChannelAudioVolume 接口来包装一些 c/c++ 函数之前,我尝试通过以下代码从 AudioClient 检索指向它的指针:

public void Starttest()
        {
            //https://docs.microsoft.com/en-us/windows/win32/api/audioclient/nn-audioclient-ichannelaudiovolume
            AudioSessionControl2 session = this.sessions.First(x => x.Process.ProcessName.Contains("Spotify"));
            AudioClient audioClient = new AudioClient(session.BasePtr);

            IntPtr t2 = new IntPtr();
            audioClient.GetServiceNative(Guid.Parse("1C158861-B533-4B30-B1CF-E853E51C59B8"),out t2);
            ChannelAudioVolume testVol = new ChannelAudioVolume(t2);
        }

现在我面临着audioClient.GetServiceNative 返回空指针的问题。为其他界面尝试其他 Guid 给我带来了相同的结果。

基于此,我想知道,我是否甚至可以操纵应用程序音频(例如应用某种形式的均衡器),而无需成为音频会话的主机或挂钩 api 调用。我将它标记为 C++ 和 C#,因为我使用 C# 来处理 UI 和调用音频 API。提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)