我正在尝试将音频信号从 Airplay 源(使用 Shairport-sync)路由到 Puredata。为此,我在 Alsa 中创建了一个环回设备。然后我将此虚拟设备设置为 Shaiport 的输出,如下所示(hw:2 是环回设备):
shairplay-sync -a -Airplay -- -d hw:2
但是当我尝试将环回设备设置为 Puredata 的输入时,我收到以下消息:
audio I/O stuck... closing audio
我想知道这个问题是否来自我的 .asoundrc 文件?这里是 :
# playback PCM device: using loopback subdevice 0,0
pcm.amix {
type dmix
ipc_key 219345
slave {
pcm "hw:Loopback,0,0"
period_size 1024
buffer_size 2048
rate 44100
}
}
# capture PCM device: using loopback subdevice 0,1
pcm.asnoop {
type dsnoop
ipc_key 219346
slave.pcm "hw:Loopback,0,1"
}
# duplex device combining our PCM devices defined above
pcm.aduplex {
type asym
playback.pcm "amix"
capture.pcm "asnoop"
}
# ------------------------------------------------------
# for jack alsa_in and alsa_out: looped-back signal at other ends
pcm.ploop {
type plug
slave.pcm "hw:Loopback,1,1"
}
pcm.cloop {
type dsnoop
ipc_key 219348
slave {
pcm "hw:Loopback,1,0"
period_size 1024
buffer_size 2048
rate 44100
}
}
# ------------------------------------------------------
# default device
pcm.!default {
type plug
slave.pcm "aduplex"
}
我应该添加有关格式或其他内容的内容吗?
仅供参考,环回设备与插孔音频一起使用时效果很好。也是纯数据。我不想使用 Jack,因为它看起来使用了太多资源(我无法让 Jack、Puredata 和环回设备一起工作,每次都会崩溃......)
感谢您的帮助!
答案1
仅供参考,Shairport Sync 现在可以直接为您提供音频源,无需 ALSA 环回设备。您可以编译它以将音频输出到管道或标准输出。