如何选择 /dev/dsp OSS 模拟使用哪种声音输出设备?

如何选择 /dev/dsp OSS 模拟使用哪种声音输出设备?

我的系统有两个音频设备,并且通过 HDMI 输出使用音频。这是卡 1、设备 7、子设备 0,因此我设置了/usr/share/alsa.conf

defaults.ctl.card 1
defaults.pcm.card 1
defaults.pcm.device 7
defaults.pcm.subdevice 0

这使我在 ALSA 应用程序中有了声音。现在我想运行一个需要 OSS 的旧程序,所以我安装了alsa-oss并执行了sudo modprobe snd-pcm-oss snd-mixer-oss。当我运行旧程序时,我可以听到声音,但只能从模拟线路输出,而不是从 HDMI 输出,因此 OSS 仿真使用第一张卡。

我怎样才能告诉 OSS 仿真使用第二张卡?

答案1

文档说:

ALSA 支持以下 OSS 设备文件:

脉冲编码调制(PCM):

      /dev/dspX
      /dev/adspX
[...]
与真正的 OSS 不同,ALSA 不能使用超过指定文件的设备文件。例如,第一张卡不能使用 /dev/dsp1 或 /dev/dsp2,而只能使用 /dev/dsp0 和 /dev/adsp0。[...]
如上所示,PCM 和 MIDI 可能有两个设备。通常,第一个 PCM 设备(ALSA 中的 hw:0,0)映射到 /dev/dsp,第二个设备(hw:0,1)映射到 /dev/adsp(如果可用)。

您可以通过 snd-pcm-oss 和 snd-rawmidi 的模块选项更改此设备映射。对于 PCM,snd-pcm-oss 有以下选项可用:

  dsp_map     PCM device number assigned to /dev/dspX
      (default = 0)
  adsp_map    PCM device number assigned to /dev/adspX
      (default = 1)

例如,要将第三个 PCM 设备 (hw:0,2) 映射到 /dev/adsp0,定义如下:

options snd-pcm-oss adsp_map=2

选项采用数组。要配置第二张卡,请指定两个以逗号分隔的条目。例如,要将第二张卡上的第三个 PCM 设备映射到 /dev/adsp1,请定义如下:

options snd-pcm-oss adsp_map=0,2

答案2

我在我的系统上已经让它运行了。

[http://forums.debian.net/viewtopic.php?f=7&t=145874][1]

如果你成功了请告诉我。非常感兴趣。

相关内容