IAudioClock2
IAudioClock2接口用于获取当前设备位置。
为了得到IAudioClock2接口的引用,应用程序必须调用IAudioClocke::QueryInterface请求流对象的IAudioClock的接口指针。
客户端通过调用IAudioClient::GetService方法,将参数riid设置为REFIID IID_IAudioClock来获取流对象的IAudioClock接口的引用;在释放IAudioClock2接口实例时,客户端必须从与IAudioClient的调用相同的线程中调用接口的释放方法::GetService创建对象。
IAudioClocke2继承于IUnkown接口,它所拥有的方法:
条件:
IAudioClockAdjustment
IAudioClockAdjustment接口用于调整流的采样率。
客户端通过调用IAudioClient::GetService方法,将参数riid设置为REFID IID_IAudioClickAdjustment,获取对流对象的IAudioClockAdjustment接口的引用。调整采样率不支持独占模式流。
IAudioClockAdjustment接口必须从使用audclnt_streamflags_rateadjustment标志和UDCLNT_SHAREMODE_SHARED共享模式的初始化的客户端获得。如果在独占模式中使用audclnt_streamflags_ratemodify标记来调用Initialize,则使用AUDCLNT_E_UNSUPPORTED_FORMAT错误代码初始化失败。
在释放IAudioClockAdjustment接口实例时,客户端必须从与IAudioClient的调用相同的线程中调用接口的释放方法::GetService创建对象。
接口IAudioClockAdjustment继承于IUnkown接口,IAudioClockAdjustment的方法如下:
使用条件:
IAudioEndpintVolumeEx
IAudioEndpintVolumeEx接口提供了对音频流或端点设备的音量控制。
客户端通过调用参数iid为REFIID IID_AudioEndpointVolumeEx的IMMDevice::Actiave方法获取IAudioEndpintVolumeEx接口的引用。
IAudioEndpintVolumeEx继承于 IAudioEndpointVolume,IAudioEndpintVolumeEx拥有的方法:
使用条件:
IAudioSessionManager2
接口IAudioSessionManager2使应用程序能够管理音频设备的子混合。
应用程序可通过以下两个步骤获得接口IAudioSessionManager2的引用:
1.使用在IMMDevice接口描述页中的技术获得音频端点设备的IMMDevice接口的引用;
2.调用参数iid为IID_IAudioSessionManager2 的 IMMDevice::Activate方法;
当应用程序想要释放IAudioSessionManager2接口实例时,必须调用接口的Release方法。
IAudioSessionManager2继承于IAudioSessionManager,IAudioSessionManager2实现的方法有:
注意:
应用程序可以使用此接口执行以下任务:
·注册用来接收ducking的通知;
·注册用来接收当一个会话被创建时的通知;
·枚举用于获取接口直接的音频设备的会话;
实例
HRESULT CreateSessionManager(IAudioSessionManager2** ppSessionManager)
{
HRESULT hr = S_