C# 如何将IAAudioSessionControl转换为AudioSessionControl

C# 如何将IAAudioSessionControl转换为AudioSessionControl,c#,interface,naudio,audiosession,C#,Interface,Naudio,Audiosession,我正在使用NAudio包装器,并尝试在创建会话时将其静音 MMDevice _device = _deviceEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia); _device.AudioSessionManager.OnSessionCreated += AudioSessionManager_OnSessionCreated; private void AudioSessionManager_OnSessionCr

我正在使用NAudio包装器,并尝试在创建会话时将其静音

MMDevice _device = _deviceEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
_device.AudioSessionManager.OnSessionCreated += AudioSessionManager_OnSessionCreated;

private void AudioSessionManager_OnSessionCreated(object sender, IAudioSessionControl newSession)
{
        //mute session
}
为了使会话静音,我需要将会话从
IAudioSessionControl
转换为
AudioSessionControl

IAudioSessionControl
是一个接口,因此我不知道如何转换它


非常感谢您的帮助。

假设您指的是
NAudio.CoreAudioApi.AudioSessionControl
有一个for-it,它将
IAudioSessionControl
作为参数并封装该接口

private void AudioSessionManager_OnSessionCreated(object sender, IAudioSessionControl newSession)
{
    AudioSessionControl audioSession = new AudioSessionControl(newSession);
    // mute
    audioSession.SimpleAudioVolume.Mute = true;
}
AudioSessionControl
对象包装
IAudioSessionControl
COM对象,并根据其他可用接口公开附加功能。更直接的等效方法可能是使用接口:

ISimpleAudioVolume simpleAudioVolume = newSession as ISimpleAudioVolume;
if (simpleAudioVolume != null)
    simpleAudioVolume.Mute = true;