擅长:python、mysql、java
<p>根据<a href="https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/DefaultDevice/" rel="nofollow noreferrer">the FreeDesktop.org wiki</a>以及<a href="https://askubuntu.com/a/103443/104">this answer on AskUbuntu</a>和相关帖子,每当一个新的流(声音生成程序)启动时,PulseAudio会将它附加到上次消失时它所连接的同一个接收器(输出设备)。这听起来像你看到的效果。关闭一个使用设备a的程序,启动源代码切换应用程序并将所有内容切换到设备B,然后再次打开该程序,PulseAudio再次将其设置为使用设备a。在</p>
<p>您可以通过添加以下行来禁用PulseAudio的这种行为</p>
<pre><code>load-module module-stream-restore restore_device=false
</code></pre>
<p>到<code>/etc/pulse/default.pa</code>并重新启动PulseAudio。对于将要使用你的应用程序来管理其声音设备的人来说,这可能是一个合理的选择;您可以将这一点合并到您的安装过程中,但有关在处理系统配置文件时要非常小心的标准建议适用。在</p>
<p>或者,您可以删除存储在文件<code>$HOME/.pulse/*stream-volumes*.gdbm</code>中的流还原数据库。从那时起,PulseAudio将认为每个音频流都是全新的,并将其分配给回退音频设备,这是您用<code>set-default-sink</code>设置的。(这也需要重新启动PA。)</p>