我最近获得了一个外部声卡/ DAC(Fiio E17),当前正在尝试在我的Ubuntu 12.04安装上正确配置它。通过USB插入时,它会立即被识别并在音频设置中显示为新设备。播放效果也很好(除了一些与音量有关的小问题,这些问题不在此问题范围内)。
但是,在尝试通过播放这样的音频文件来测试24位/ 96 kHz播放时mplayer
,我遇到了一个小问题:
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
此时,我注意到在声音设置的硬件选项卡中,可以为声卡选择两个不同的配置文件:Digital Stereo(IEC958)和Analog Stereo。据我所知,在这两者之间切换不会导致任何更改。
不过,指定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设备?
- 在声音设置中选择Fiio E17时,如何告诉Pulseaudio使用ALSA设备hw:1,0?
更多(希望有帮助)调试信息:
mplayer -ao alsa:device=hw=1.0 sr003-02-2496.wav
并aplay -Dhw:1,0 sr003-02-2496.wav
使用正确的设备。
aplay sr003-02-2496.wav
and mplayer sr003-02-2496.wav
。是的,如果可能的话,我想使用PulseAudio。
mplayer
和aplay
命令行?