我计划在检测到 pulseaudio 中的新接收器输入索引时生成一个线程。但是当我运行某个应用程序时,我发现为同一客户端创建了第二个接收器索引。
系统生成一个线程并关闭第一个线程,这与当前正在运行的程序无关。我将其作为运行我的代码生成的参考进行跟踪,该代码检测到我在运行 openarena 游戏时生成的新接收器输入索引。
****检测到索引为 0 的接收器输入播放流 hello**** =======[ 接收器输入# 0 ]======= 名称:播放流 客户:11 接收器:0 样本格式:3 采样率:44100 采样通道:2 所有者模块:7 缓冲区使用量:160068 接收器使用量:210498 驱动程序:protocol-native.c 客户名称:Warzone 2100 ****移除接收器输入 0**** ****检测到索引为 1 的接收器输入播放流 hello**** =======[ 接收器输入# 1 ]======= 名称:播放流 客户:11 接收器:0 样本格式:3 采样率:44100 采样通道:2 所有者模块:7 缓冲区使用量:346689 接收器使用量:23883 驱动程序:protocol-native.c 客户名称:Warzone 2100 ****移除接收器输入 1**** ****检测到索引为 2 的接收器输入播放流 hello**** =======[ 接收器输入# 2 ]======= 名称:播放流 客户:13 接收器:0 样本格式:3 采样率:44100 采样通道:2 所有者模块:7 缓冲区使用量:160068 接收器使用秒:210488 驱动程序:protocol-native.c 客户端名称:torcs-bin ****移除接收器输入 2**** ****检测到索引为 3 的接收器输入播放流 hello**** =======[ 接收器输入# 3 ]======= 名称:播放流 客户:13 接收器:0 样本格式:3 采样率:44100 采样通道:2 所有者模块:7 缓冲区使用量:347052 接收器使用量:23997 驱动程序:protocol-native.c 客户端名称:torcs-bin ****移除水槽输入 3**** ****检测到索引为 4 的接收器输入播放流 hello**** =======[ 接收器输入# 4 ]======= 名称:播放流 客户:20 接收器:0 样本格式:3 采样率:44100 采样通道:2 所有者模块:7 缓冲区使用量:160068 接收器使用:210464 驱动程序:protocol-native.c 客户端名称:ioquake3 ****移除水槽输入 4**** ****检测到索引为 5 的接收器输入播放流 hello**** =======[ 接收器输入# 5 ]======= 名称:播放流 客户:20 接收器:0 样本格式:3 采样率:44100 采样通道:2 所有者模块:7 缓冲区使用量:346507 接收器使用量:23980 驱动程序:protocol-native.c 客户端名称:ioquake3 ****移除水槽输入 5**** ****检测到索引为 6 的接收器输入简单 DirectMedia 层 hello**** =======[ 接收器输入# 6 ]======= 名称:简单 DirectMedia 层 客户:24 接收器:0 样本格式:0 采样率:11025 采样通道:1 所有者模块:7 缓冲区使用量:265147 接收器使用量:105270 驱动程序:protocol-native.c 客户端名称:测试流 ****移除水槽输入 6**** ****检测到索引为 7 的接收器输入播放流 hello**** =======[ 接收器输入# 7 ]======= 名称:播放流 客户:26 接收器:0 样本格式:3 采样率:44100 采样通道:2 所有者模块:7 缓冲区使用量:91133 接收器使用量:209540 驱动程序:protocol-native.c 客户名称:MegaGlest ****移除水槽输入 7**** ****检测到索引为 8 的接收器输入播放流 hello**** =======[ 接收器输入# 8 ]======= 名称:播放流 客户:26 接收器:0 样本格式:3 采样率:44100 采样通道:2 所有者模块:7 缓冲区使用量:347233 接收器使用量:22750 驱动程序:protocol-native.c 客户名称:MegaGlest ****移除水槽输入 8****
这个接收器索引0和1之间的唯一区别是缓冲区usec和接收器usec,这是我找到的。
我想知道这背后的原因是什么。为什么每次我运行这个游戏或任何其他游戏时都会创建 2 个接收器输入索引(我也尝试过其他游戏,但得到了相同的结果)。