[C++]使用libvlc在一台主机上输出互不干扰的两种不同音频

一、项目机环境设置(推荐华硕主机)

系统: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必须从心加载视频,才会切换

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值