使用 ALSA 播放 mp3 文件时,使用 libmad 解码 mp3 文件,libmad 通过回调提供每个 mp3 帧的采样率和位深度mad_header
。
虽然在开始时使用设置ALSA参数snd_pcm_hw_params_set
,但下一帧的采样率和比特率可能会发生变化,需要重置才能正常播放。
问题:
- 1 是否应该为每一帧重新设置采样率和比特率(或者在它们改变时进行最佳设置)?
- 2 如果问题#1 的答案是“是”,这会中断播放吗?以及如何处理它以避免故障和额外的 CPU 负载
- 3 如果问题#1 的答案是否定的,这将如何影响播放质量以及要保持哪个比特率/采样率才能获得更好的播放体验?