我正在尝试从microSD卡读卡器播放wav文件。我尝试使用SimpleSDAudio和TMRpcm库,但是播放速度太快了。持续3分钟的歌曲将在1秒内播放。
我正在使用带有内置microSD卡读卡器的Arduino Uno和Ethernet Shield。扬声器连接到引脚9。
#include <SimpleSDAudio.h>
void setup()
{
// SdPlay.setSDCSPin(10); // Enable if your SD card CS-Pin is not at Pin 4...
SdPlay.init(SSDA_MODE_HALFRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER);
SdPlay.setFile("track.wav");
SdPlay.play();
}
void loop(void) {
}
问题是您使用的库无法播放8k示例文件-请参阅http://www.hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio。最慢的速率是32k(取决于主板上的时钟速率)-因此,您将获得4倍的速度提高。
您的缓冲区也可能不够大。它会播放整个文件,还是在结束之前停止播放?您可能要使用
getLastError();
找出错误是否导致播放停止得太快(文件是否碎片化?您需要使用格式化干净的SD卡,并且不能删除其中的任何文件,否则它会造成混乱和损坏)。有关更多详细信息,请参见上面的链接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句