zoukankan      html  css  js  c++  java
  • 利用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 FilesJACKjackd文件,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版本下载啊?

  • 相关阅读:
    Js之Location对象
    Hibernate事务传播性
    Java异常基础Exception
    JVM垃圾回收机制
    JDK动态代理例子
    Hibernate之通过hibernate.cfg.xml配置文件访问数据库的例子
    开源wkhtmltopdf使用心得 (四)
    开源wkhtmltopdf使用心得 (三)
    开源wkhtmltopdf使用心得 (二)
    开源wkhtmltopdf使用心得 (一)
  • 原文地址:https://www.cnblogs.com/DaochenShi/p/4389797.html
Copyright © 2011-2022 走看看