利用JACK在Windows下PC之间传递声音

因为之前订购的AlienwareAlpha快到了,但是只有HDMI一个口,没有普通3.5mm音频插口,而我用的则是HDMI-DVI的线接入显示器,这直接导致没有声音了,没声音这能叫游戏机么……反正真机还没来,先做好准备工作:在两台PC之间搭建一个传递音频的通道。

首先Google了一下,发现有这样的东西:https://blogs.gentoo.org/mgorny/2015/01/16/surround-sound-over-network-with-windows-8/

总之试了之后感觉很麻烦,而且没成功。不过转念一想,俩电脑都有蓝牙,不如建立连接然后蓝牙播放。因为记得Y450的蓝牙可以打电话、听手机音乐什么的,想着PC功能这么强大肯定可以,结果发现根本连什么Profile都没有啊!WDK的驱动sample完全不知道在哪!不搞了。

因为头一次看的没搭建成功,第二天仔仔细细从头到尾读了一遍,发现我只需要立体声,所以那篇博客说的似乎太麻烦了。

 

因为是按照那篇博客来做的,所以顺序也差不多:

我这里需要的软件是:

JACK2 服务器,这个在每台电脑上都得有。

VB-Audio Cable:虚拟声卡。这个装在你想导出声音的那个机器上。因为我不需要Hi-Fi所以没用它的那个HiFi的。

 

 

客户端(实际发出声音的PC)

因为64-bit原因,你需要吧x86的program files的JACK文件夹全部拷贝到x64的下面,因为调用的是C:\Programs Files\JACK\jackd文件,64的不在这得手动copy。

然后命令行cd到jack文件夹,运行:(注意是双引号,原文当中的单引号在win8.1下面参数解析错误)

jack_load netadapter -i "-C 2"

jack_connect netadapter:capture_1 system:playback_1

jack_connect netadapter:capture_2 system:playback_2

然后打开jack control就行了。不清楚jack control是否需要手动配置,反正我是把setup当中的driver设置为net了

这其实就是建立了个网络设备,然后把远端的与本机的端口对应起来。

 

服务器端(无法发声的机器装虚拟声卡)

(刚犯了个错:在master上面ctrl+C然后slave Ctrl+V。本来想贴原文对比,不过还是自己写吧)

 

1. 你需要选择输出设备是“CABLE Input”,音质啥的跟普通音箱设置都一样。

2. 设置JACK master。

Driver: portaudio

Input Device: Windows DirectSound::CABLE Input (VB-Audio Virtual Cable)

Output Device: Windows DirectSound::CABLE Output (VB-Audio Virtual Cable)

3. 建立一个bat文件,内容是

jack_load netmanager

把这个bat加入到Setup->Options->Execute script after Startup:这个地方

4. 建立声道与网络的连接

记得之前的客户端要一直运行,这时候在Jack Control的Connect应该可以看到客户端的id了,简单建立连接即可。

Screenshot (26)

那个patchday似乎是用来保存接头与接头的配置信息的,要是想每次手动设置也行。

 

 

完成了

这样就弄好了。不过最好不要用无线网络,否则声音你会觉得很奇怪的……

下一步打算试试用树莓派播,反正它24小时开。另外在赛扬N2807上面CPU占用100%,唉,不知道是低端CPU的原因还是软件原因。Runtime Broker占了50%。

PS:哦,似乎平常不占用那么多,大概1%~2%的样子。树莓派失败,我按照Surface上的同样步骤试了,结果是Waiting for a master。即使关防火墙也不行。说明它和服务器无法连接。搜了许多帖子,最终发现可能是pi的版本1.9.9对不上服务器的1.9.10……哪个地方有1.9.9的Windows版本下载啊?

posted @ 2015-04-03 13:13  Shi Daochen  阅读(1514)  评论(0编辑  收藏  举报