通过SSH的ALSA(snd_pcm_open)?

通过SSH的ALSA(snd_pcm_open)?,ssh,alsa,Ssh,Alsa,我已经使用ALSA编写了一个应用程序(snd_pcm_open、snd_pcm_readi等)。这个应用程序在我的机器上本地运行得很好。但是,当我使用SSH连接到另一台机器并通过SSH连接运行它时,所有对snd_pcm_open的调用都会失败,并显示消息“Device not exist”或类似消息。远程机器和本地机器一样有声卡 这里有什么问题 谢谢 编辑:如果我使用远程计算机上的控制台运行应用程序(走向计算机,登录,运行应用程序),应用程序运行正常。只是为了检查明显的问题:远程计算机上的声卡驱

我已经使用ALSA编写了一个应用程序(snd_pcm_open、snd_pcm_readi等)。这个应用程序在我的机器上本地运行得很好。但是,当我使用SSH连接到另一台机器并通过SSH连接运行它时,所有对snd_pcm_open的调用都会失败,并显示消息“Device not exist”或类似消息。远程机器和本地机器一样有声卡

这里有什么问题

谢谢


编辑:如果我使用远程计算机上的控制台运行应用程序(走向计算机,登录,运行应用程序),应用程序运行正常。

只是为了检查明显的问题:远程计算机上的声卡驱动程序是否已加载且工作正常?检查
/proc/asound/cards
并查看,以便列出该卡。

只是为了检查明显的问题:远程机器上的声卡驱动程序是否已加载且工作正常?检查
/proc/asound/cards
并查看,以便列出该卡。

只是为了确认……您在远程机器上安装了应用程序,并且远程机器有其他可用的aplay等?必须对远程计算机进行设置,以便如果要从控制台登录并运行应用程序,它将正常工作


如果是这种情况,那么请检查您的环境变量,因为有时它们可能会有细微的差异。

只是为了确认……您已在远程计算机上安装了应用程序,并且远程计算机已在其他方面运行aplay等?必须对远程计算机进行设置,以便如果要从控制台登录并运行应用程序,它将正常工作


如果是这种情况,请检查您的环境变量,因为有时它们可能会有细微的差异。

找到了原因。原来是
/dev/audio
和下面的
/dev/snd/
设备,所有这些设备都由登录到远程计算机的用户所有,其他人无法读取/写入。对于测试,我应用了chmod777/dev/audio/dev/snd/*,它开始工作


有人知道我如何对远程计算机的音频设备(重新启动后将持续)应用更大的权限吗?

找到了原因。原来是
/dev/audio
和下面的
/dev/snd/
设备,所有这些设备都由登录到远程计算机的用户所有,其他人无法读取/写入。对于测试,我应用了chmod777/dev/audio/dev/snd/*,它开始工作


有人知道我如何对远程计算机的音频设备(重新启动后将持续)应用更大的权限吗?

问题可能在于
/dev/snd/*
访问权限。 确保用户在音频组中。
在我的情况下,我必须执行
adduser$USER audio
,断开连接,然后重新连接。

问题可能在于
/dev/snd/*
访问权限。 确保用户在音频组中。
在我的情况下,我必须执行
adduser$USER audio
,断开连接,然后重新连接。

您希望在远程机器上播放音频,对吗?远程机器也使用alsa,并且配置正确?是的。实际上,我的应用程序记录音频,但这不会有任何区别,对吗?远程机器也使用ALSA,是的。如果我在远程机器上本地运行我的应用程序(走到计算机,登录,启动我的应用程序),它可以工作。你想在远程机器上播放音频,对吗?远程机器也使用alsa,并且配置正确?是的。实际上,我的应用程序记录音频,但这不会有任何区别,对吗?远程机器也使用ALSA,是的。如果我在远程计算机上本地运行我的应用程序(走到计算机,登录,启动我的应用程序),它会工作。如果我在远程计算机上本地运行我的应用程序(走到远程计算机,登录,启动我的应用程序),它会工作。因此,如果我从控制台运行,它会工作。如果我运行SSH,snd_pcm_open将失败。应该在问题中写下,抱歉。要检查您的环境变量,请在两种不同条件下登录时执行
env>walklogin.txt
env>sshlogin.txt
。然后
diff-sshlogin.txt walklogin.txt
看看有什么区别,我做了,有一些区别,但我看不到任何会干扰音频或录音的东西。我应该寻找什么?如果没有明显的“声音设置”类型的变量,那么库和路径是你的第一站。如果我在远程机器上本地运行我的应用程序(走到远程计算机,登录,启动我的应用程序),它可以工作。因此,如果我从控制台运行,它会工作。如果我运行SSH,snd_pcm_open将失败。应该在问题中写下,抱歉。要检查您的环境变量,请在两种不同条件下登录时执行
env>walklogin.txt
env>sshlogin.txt
。然后
diff-sshlogin.txt walklogin.txt
看看有什么区别,我做了,有一些区别,但我看不到任何会干扰音频或录音的东西。我应该寻找什么?库和路径是您的第一站如果没有明显的“声音设置”类型的变量,那么远程机器上的一切都正常工作。请参阅我对原始问题的编辑。是的,远程机器上的一切都正常工作。请参阅我对原始问题的编辑。