问题描述
当我将事件处理程序注册到应用程序启动时已经运行的音频会话时,没有任何反应。
public class Program
{
public MMDeviceEnumerator mme = new MMDeviceEnumerator();
public MMDevice mmDevice;
public AudioSessionEventHandler aseh = new AudioSessionEventHandler();
public Program()
{
mmDevice = mme.GetDefaultAudioEndpoint(DataFlow.Render,Role.Multimedia);
for (int i = 0; i < mmDevice.AudioSessionManager.Sessions.count; i++)
{
if(mmDevice.AudioSessionManager.Sessions[i].IsSystemSoundsSession) {continue; }
mmDevice.AudioSessionManager.Sessions[i].RegisterEventClient(aseh);
}
}
public class AudioSessionEventHandler : IAudioSessionEventHandler
{
//Interface implementations
}
}
例如,当会话的音量发生变化时,什么也不会发生。我只设法将事件处理程序注册到在程序运行时启动的音频会话:
mmDevice.AudioSessionManager.OnSessionCreated += AudioSessionManager_OnSessionCreated;
public AudioSessionEvents ase = new AudioSessionEvents();
.
.
.
private void AudioSessionManager_OnSessionCreated(object sender,IAudioSessionControl newSession)
{
newSession.RegisteraudioSessionNotification(ase);
}
public class AudioSessionEvents : IAudioSessionEvents
{
//Interface implementations
}
感谢任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)