有人通过流媒体播放音乐吗?miniDSP usbstreamer b 单元?
我正在尝试在我的笔记本电脑供电的立体声音响系统中省去多余的数字到模拟转换。usbstreamer b 单元将允许我的立体声音响只进行一次数字到模拟的转换。希望有办法让它与 Linux 兼容。
Ubuntu 16.04 可以识别该设备,并且可以配置为向其发送音频。但是 usbstreamer 似乎没有生成 toslink 信号,所以我怀疑 Ubuntu 向 usbstreamer 发送了错误的数据。
我已经使用 Windows 框将 usbstreamer 上的固件设置为 toslink。
编辑(1016 年 7 月 1 日):我可以从笔记本电脑播放一些声音。如果我通过 aplay 运行 ALSA 测试 wav 文件,它们就会播放。但我无法将任何其他声音广播到 usbstreamer。
有人知道这是怎么回事吗?aplay 可以工作,但没有其他系统声音被广播?特别是,我希望能够让 Rythmbox 等软件通过流媒体播放。例如,在“声音设置”对话框中(Ubuntu 默认设置),如果我将输出设置为 USBStreamer,则会导致没有任何系统声音发送到 usbstreamer——或者至少不是以流媒体可以理解的方式。因为它们不播放。
以下是我所做过的成功的事情:
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog [ALC269VC Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: USBStreamer [USBStreamer], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
aplay -D plughw:1,0 /usr/share/sounds/alsa/Side_Left.wav
经过一番谷歌搜索后,我发现 usb-audio 驱动程序需要进行一些设置。ALSA 看到了 usbstreamer,但 Ubuntu 似乎没有现成的驱动程序,也许可以与 usb-audio 驱动程序拼凑起来。看来我可能必须设置一个 .asoundrc 文件。这些页面似乎特别相关:
https://help.ubuntu.com/community/UbuntuStudio/UsbAudioDevices
http://www.alsa-project.org/main/index.php/Matrix:Module-usb-audio
编辑2:
最后,我通过 usbstreamer 和 minidsp 4x10hd 单元,用 mplayer 将音乐从我的 Linux 笔记本电脑播放到我的扬声器。
我不明白的关键一点是最好不要将 pulseaudio 与高端扬声器一起使用……Linux 社区早就意识到了这一点。因此,他们开发了一种独特的音频接口,称为 Jack。
我还没有弄清楚所有的怪癖,但“Jack 音频连接套件”有一个很好的 GUI 来设置音频接口。mplayer 将直接流式传输到 jack。
所以现在我的所有音乐似乎都可以播放了。嗯,现在我可能必须以更高的采样率翻录我的所有音乐……
一旦一切顺利进行,我就会发布一些希望更容易理解的内容,也许作为答案。
答案1
这插孔音频连接套件正是我想要的。我遇到的主要问题是我试图解决 Pulseaudio 的问题,但看来 jackd 是 Linux 中高端音频的首选守护进程。
杰克水管使得在应用程序和音频系统之间建立持久连接变得方便,特别是在没有显示器的 Linux 机器上。 qjackctl如果您想使用 GUI,这是您可以实现的众多方法之一。我发现 jack-plumbing 文件格式有点难懂,所以我使用 qjackctl 来帮助确定文件格式。
例如,
(connect "MPlayer \[[0-9]+\]:out_0" "system:playback_9")
(connect "MPlayer \[[0-9]+\]:out_1" "system:playback_10")
是我的 .jack-plumbing 文件的内容(位于我的主目录顶部),它在 mplayer 和我的音频系统之间建立了持久连接。
我从 qjackctl“patchbay”文件中抓取了以下几行:
<!DOCTYPE patchbay>
<patchbay version="0.4.2" name="patchbay">
<output-sockets>
<socket exclusive="off" name="MPlayer \[[0-9]+\] 1" client="MPlayer \[[0-9]+\]" type="jack-audio">
<plug>out_0</plug>
<plug>out_1</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" name="system 1" client="system" type="jack-audio">
<plug>playback_9</plug>
<plug>playback_10</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable output="MPlayer \[[0-9]+\] 1" input="system 1" type="jack-audio"/>
</cables>
</patchbay>
如下命令
mplayer -ao jack blah.mp3
足以通过系统播放 blah.mp3 文件。
编辑:
另一种解决方案是创建 /etc/asound.conf 并使其如下:
pcm.usbSTR { type hw card USBStreamer device 0 } pcm.usbREMAP { type plug slave.pcm usbSTR ttable.0.8 1 ttable.1.9 1 } pcm.!default { type plug slave.pcm usbREMAP } ctl.!default { type plug slave.pcm usbREMAP }
这使得您可以完全避开 Jack,而直接连接到 ALSA。