0

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

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

private void AudioSessionManager_OnSessionCreated(object sender, IAudioSessionControl newSession)
{
        //mute session
}

为了使会话静音,我需要将其转换IAudioSessionControlAudioSessionControl

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

一点帮助将不胜感激。

4

1 回答 1

2

假设您的意思是它NAudio.CoreAudioApi.AudioSessionControl有一个构造函数,它接受一个IAudioSessionControl作为参数并封装该接口。

private void AudioSessionManager_OnSessionCreated(object sender, IAudioSessionControl newSession)
{
    AudioSessionControl audioSession = new AudioSessionControl(newSession);
    // mute
    audioSession.SimpleAudioVolume.Mute = true;
}

AudioSessionControl对象包装IAudioSessionControlCOM 对象并根据可用的其他接口公开附加功能。更直接的等价物可能是使用ISimpleAudioVolume接口:

ISimpleAudioVolume simpleAudioVolume = newSession as ISimpleAudioVolume;
if (simpleAudioVolume != null)
    simpleAudioVolume.Mute = true;
于 2015-07-21T08:54:43.240 回答