Linux ALSA dmix插件和采样率问题
我正在一个嵌入式项目中使用ALSA dmix插件,并通过使用mpg321 ALSA播放mp3文件来混合这些文件。在asound.conf中,我将dmix采样率设置为44100Hz 如果我尝试以44100Hz以外的速率(或平均分成44100Hz的速率)播放任何采样的mp3文件,则音频质量会降低,甚至更糟的是,文件的开头会被忽略。这有一个随机的方面:如果我创建一个300毫秒长的音频文件,并通过mpg321 alsa播放,那么有时播放正常,有时根本没有声音 这是dmix的已知问题吗?除了对mp3文件重新采样外,还有其他解决办法吗 请参阅 请注意,dmix插件本身只支持一种配置。也就是说,它只支持固定速率(默认48000)、格式(Linux ALSA dmix插件和采样率问题,linux,mp3,alsa,Linux,Mp3,Alsa,我正在一个嵌入式项目中使用ALSA dmix插件,并通过使用mpg321 ALSA播放mp3文件来混合这些文件。在asound.conf中,我将dmix采样率设置为44100Hz 如果我尝试以44100Hz以外的速率(或平均分成44100Hz的速率)播放任何采样的mp3文件,则音频质量会降低,甚至更糟的是,文件的开头会被忽略。这有一个随机的方面:如果我创建一个300毫秒长的音频文件,并通过mpg321 alsa播放,那么有时播放正常,有时根本没有声音 这是dmix的已知问题吗?除了对mp3文件重
S16
)、频道(2)和时段时间(125000)。对于使用其他配置,必须在从属PCM定义中明确设置该值。速度、格式和频道可以由一个额外的插件来覆盖,但无论如何,只有一个基本配置
例如(根据需要进行修改)
谢谢你。我有一个与上面显示的配置非常相似的配置。现在我想知道是否需要查看缓冲,尽管奇怪的是音频截断是在开始而不是结束时。我已经查阅了ALSA的文档,但仍然认为我遗漏了一些东西。
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
}
}