会话名称为空的C#CoreAudio API问题

会话名称为空的C#CoreAudio API问题,c#,winapi,C#,Winapi,我正在尝试用C#构建一个windows应用程序,通过使用核心音频api来控制和管理windows音量混合器。我面临的问题是关于获取会话名称,我可以通过获取会话分配的进程ID来实现,但是下面的代码生成空行 using System; using CoreAudio; namespace app { public static class Start { public static void Main(String[] args) {

我正在尝试用C#构建一个windows应用程序,通过使用核心音频api来控制和管理windows音量混合器。我面临的问题是关于获取会话名称,我可以通过获取会话分配的进程ID来实现,但是下面的代码生成空行

using System;
using CoreAudio;

namespace app
{
    public static class Start
    {
        public static void Main(String[] args)
        {
            MMDevice device;

            MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();

            device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);

            int num = device.AudioSessionManager2.Sessions.Count;

            for (int i = 0; i < num; i++)
            {
                Console.WriteLine(device.AudioSessionManager2.Sessions[i].DisplayName);
            }

            Console.ReadKey();
        }
    }
}

这会导致以下问题:由于会话被检测为null,因此它们不会触发与新添加会话相关的通知

根据:如果客户端没有调用
IAudioSessionControl::SetDisplayName
来设置显示名称,则字符串将为空。因此我无法在代码中修复它?还是我误解了?对于同一个测试视频,当它在Firefox和Chrome中打开时,Chrome不会显示会话名称,并返回
S\u OK
Mozilla Firefox

Mozilla Firefox
Mozilla Firefox
Mozilla Firefox
Mozilla Firefox

Mozilla Firefox
Mozilla Firefox
Mozilla Firefox
@%SystemRoot\System32\AudioSrv.DLL,-202

Mozilla Firefox

Mozilla Firefox