我最近购买了一个外置声卡/DAC(Fiio E17),目前正在尝试在我的Ubuntu 12.04系统上正确配置它。当通过USB插入时,系统立即识别并在音频设置中显示为新设备。播放功能基本正常(除了一些与音量相关的小问题,超出了本问题的范围)。
然而,当我尝试使用mplayer播放24位/96 kHz的音频文件进行测试时,遇到了一个小问题:
从输出中可以看出,尽管播放的文件包含24位/96 kHz音频,但在播放之前被重新采样为16位。使用
然而,
这个时候我注意到在声音设置的硬件选项卡中,我可以为声卡选择两个不同的配置文件:数字立体声(IEC958)和模拟立体声。然而,在这两者之间切换并没有什么变化,就我所知。
不过,指定ALSA设备确实有帮助(也就是说,
所以,这就是前言,接下来是我的实际问题:
然而,当我尝试使用mplayer播放24位/96 kHz的音频文件进行测试时,遇到了一个小问题:
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 96000 Hz, 2 ch, s24le, 4608.0 kbit/100.00% (ratio: 576000->576000)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
AO: [pulse] 96000Hz 2ch s16le (2 bytes per sample)
从输出中可以看出,尽管播放的文件包含24位/96 kHz音频,但在播放之前被重新采样为16位。使用
aplay
播放相同的文件可以看到原因。Playing WAVE 'sr003-02-2496.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo
aplay: set_params:1081: Sample format non available
Available formats:
- U8
- S16_LE
- S16_BE
- S32_LE
- S32_BE
- FLOAT_LE
- FLOAT_BE
- MU_LAW
- A_LAW
然而,
/proc/asound/card1/stream0
证实了硬件确实支持24位。FiiO FiiO USB DAC-E17 at usb-0000:00:1a.0-1.1, full speed : USB Audio
Playback:
Status: Running
Interface = 3
Altset = 1
Packet Size = 388
Momentary freq = 44100 Hz (0x2c.199a)
Interface 3
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 3 OUT (ADAPTIVE)
Rates: 32000, 44100, 48000, 96000
Interface 3
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 3 OUT (ADAPTIVE)
Rates: 32000, 44100, 48000, 96000
这个时候我注意到在声音设置的硬件选项卡中,我可以为声卡选择两个不同的配置文件:数字立体声(IEC958)和模拟立体声。然而,在这两者之间切换并没有什么变化,就我所知。
不过,指定ALSA设备确实有帮助(也就是说,
aplay -Dhw:1,0 sr003-02-2496.wav
可以正常工作并播放文件而不进行重新采样)。但由于Pulseaudio在声音设置中只显示一个Fiio设备/输出,我不确定如何告诉Pulseaudio使用ALSA设备hw:1,0
。将load-module module-alsa-source device=hw:1,0
添加到/etc/pulse/default.pa
会导致Pulseaudio在启动时中止,并显示module.c: Failed to load module "module-alsa-source" (argument: "device=hw:1,0"): initialization failed.
。所以,这就是前言,接下来是我的实际问题:
- 我怎么知道当我在声音设置中选择Fiio E17时,Pulseaudio实际使用哪个ALSA设备?
- 我怎么告诉Pulseaudio在选择Fiio E17时使用ALSA设备hw:1,0?
一些更多(希望有帮助的)调试信息:
mplayer -ao alsa:device=hw=1.0 sr003-02-2496.wav
和aplay -Dhw:1,0 sr003-02-2496.wav
来使用正确的设备,如果这是你问的。 - tmntaplay sr003-02-2496.wav
和mplayer sr003-02-2496.wav
。如果可能的话,我想使用PulseAudio。 - tmnt