If I understand the snippet that you posted, the data on the card are written as ASCII strings. That is a very inefficient way to store audio data. You should have written the audio samples in binary. Each sample would then be exactly two bytes and would allow you to read, say, 512 bytes into a buffer and then you can write the 256 samples from there.
Which Arduino are you using?
Pete