一、项目机环境设置(推荐华硕主机)
系统:win10 x64
用到硬件:机箱前面板的耳机插孔,主板上耳机插孔(两个音频输出口)
打开Realtek Audio Control,打开高级设置,勾选“使前部和后部的输出设备同时播放两种不同的音频流”(下面是华硕的)
然后声音里就会出现新的播放设备Realtek HD Audio 2nd output
二、新建工程、配置vlc环境
这部分跳过,有很多教程都教学过
三、关键代码
下面是vlc设置音频的代码
void VLCWrapperImpl::SetAudioOutputDev(const char * name)
{
libvlc_audio_output_device_t *pDevList = nullptr;
libvlc_audio_output_t *pOutputList = libvlc_audio_output_list_get(pVLCInstance_);
while (pOutputList)
{
/获取设备
pDevList = libvlc_audio_output_device_list_get(pVLCInstance_, pOutputList->psz_name);
int i = 0;;
while (pDevList)
{
/找到我想要的那个设备,跳出循环,这里使用i控制,我知道我想要的设备位置
if (strcmp(pOutputList->psz_name, "waveout") == 0 && i >= 3)
{
goto end;
}
char *id= libvlc_audio_output_device_longname(pVLCInstance_, pOutputList->psz_name,i);
i++;
pDevList = pDevList->p_next;
}
pOutputList = pOutputList->p_next;
}
end:
"adummy"|"afile"|"amem"|"directsound"|"mmdevice"|"waveout"
设置输出waveout
libvlc_audio_output_set(pMediaPlayer_, "waveout");
指定设备输出pDevList->psz_device
libvlc_audio_output_device_set(pMediaPlayer_, "waveout", pDevList->psz_device);
}
接下来要说的是特别奇葩的部分,特别奇葩!!!!!!!!!!!!!!!!!!!!!
1.必须先加载完视频,开始播放后,设置才会生效
2.设置生效后,VLC必须从心加载视频,才会切换