示例目录
- /cri/pc/samples/criatomex/select_device
示例描述
- 在应用程序中选择音频设备示例。
- Atom运行库的输出音频从初始化时在CriAtomExAsrConfig::sound_renderer_type 中设置的声音渲染器中输出。
(如果没有更改预设设置,则从CRIATOM_SOUND_RENDERER_NATIVE中输出。)
- 在PC环境中,CRIATOM_SOUND_RENDERER_NATIVE分配给Windows的预设播放设备。
因此,使用预设设置初始化程序库时,应用程序中播放的所有音频都将从预设设备输出。
(如果用户更改Windows设置并更改了预设音频设备,则将从更改的设备输出音频。)
- 也可以忽略Windows预设设备,从应用程序中显式指定输出目标设备。
具体来说,可以在应用程序中执行::criAtom_SetDeviceId_WASAPI函数,为CRIATOM_SOUND_RENDERER_NATIVE分配任意设备。
- 具体处理代码的示例如下。
main()
{
:
:
}
@ CRIATOM_SOUND_RENDERER_NATIVE
Definition: cri_le_atom.h:812
void criAtom_SetDeviceId_WASAPI(CriAtomSoundRendererType type, LPCWSTR device_id)
Set sound device
- 可以使用::criAtom_EnumAudioEndpoints_WASAPI函数进行音频设备的枚举。
( 可以通过执行::criAtom_EnumAudioEndpoints_WASAPI函数,每次检测到设备时通过回调接收信息。)
main()
{
:
:
}
static void CRIAPI user_endpoint_callback(void *object, IMMDevice *device)
{
:
hr = device->GetId(&device_id);
wcscpy_s(device_info[num_devices].id, MAX_DEVICE_ID_LENGTH, device_id);
CoTaskMemFree(device_id);
:
}
CriSint32 criAtom_EnumAudioEndpoints_WASAPI(CriAtomAudioEndpointCbFunc_WASAPI callback, void *object)
Enumerate audio endpoints