我在嵌入式项目中使用ALSA dmix插件,并通过使用mpg321-alsa播放混合mp3文件。在我的asound.conf中,我将我的dmix采样率设置为44100Hz。
如果我尝试播放以44100Hz以外的速率采样的任何mp3文件(或均匀分为44100Hz的速率),则音频质量会降低甚至更糟,文件的开头会被省略。这有一个随机的方面:如果我创建一个300毫米长的音频文件并通过mpg321-alsa播放,那么有时它会播放正常,有时根本就没有声音。
这是dmix的已知问题吗?是否有任何变通方法,没有重新采样mp3文件?
答案 0 :(得分:2)
请注意,dmix插件本身仅支持单个配置。也就是说,它仅支持固定速率(默认48000),格式(
S16
),通道(2)和period_time(125000)。要使用其他配置,必须在从PCM定义中明确设置该值。额外的插件插件可以覆盖速率,格式和通道,但无论如何只有一个基本配置。
作为示例(根据您的需要进行修改),
pcm.dsp0 {
type plug
slave.pcm "asym0"
slave.rate 44100
}
pcm.asym0 {
type asym
playback.pcm "dmix0"
capture.pcm "dsnoop0"
}
pcm.dmix0 {
type dmix
ipc_key 1024
ipc_perm 0666
slave {
pcm {
type hw
card 0
device 0
}
period_time 0
period_size 1024
buffer_size 65536
format "S16_LE"
periods 128
rate 44100
}
}
pcm.dsnoop0 {
type dsnoop
ipc_key 1025
ipc_perm 0666
slave.pcm {
type hw
card 0
device 0
}
}