Using loop() in solution 1 is too unstable because I can't determine the loop frequency.Using timer2 in solution 2 can't be done because the time used to read SD card cause lacking in the timer 1.
Is there an other solution ? It must be, because I know it's possible to read mp3 on SD cards with some shields.
Thanks for the answer. I tried using sei() function, but my Due doesn't recognize it (function unknown). Maybe this function is just for Uno or Mega ?
About the mp3, indeed there is 10 times less information per second than wave, but it must be uncompressed, and it's a costly operation.