Play wav on arduino

Hey guys!
When I next track , the program is stops.
Please help me!
/*

+-----------+---------------------------------+
| SD module | Arduino (UNO) |
+-----------+---------------------------------+
| Gnd | Gnd |
| 3.3v | 3.3v |
| 5v | 5v |
| CS | pin 4 (Pin 53 on Arduino Mega) |
| MOSI | pin 11 (Pin 51 on Arduino Mega) |
| SCK | pin 13 (Pin 52 on Arduino Mega) |
| MISO | pin 12 (Pin 50 on Arduino Mega) |
| Gnd | Gnd
*/
#include <SD.h>
#include <SPI.h>
#include <pcmConfig.h>
#include <pcmRF.h>
#include <TMRpcm.h>
// chan sieu am
#define trigPin 6
#define echoPin 5

const int CS_PIN = 4;
const int SpeakerPin = 9;

float distance_2, distance_1 = 0;
int time_1 = 0;
int check_play = 0;
int check_time = 0;
TMRpcm Audio;
int count_time = 0;
File SubFile;
File Root;
int check_volume = 1;
int kt;

void setup() {
Serial.begin (9600); // giao tiep voi serial9600
pinMode(CS_PIN, OUTPUT);
SD.begin(CS_PIN);

Root = SD.open("/");
SubFile = Root.openNextFile();
SubFile = Root.openNextFile();
Serial.println("Checking...");
Serial.println(SubFile.name());

pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

Audio.speakerPin = SpeakerPin;
Audio.setVolume(2);
Serial.println("Done !");
}

void loop()
{
distance_1 = getdistance(30);

if (distance_1 <= 5 && distance_1 > 0) //
{
check_time++;
distance_1 = getdistance(100);
}
// dieu chinh volume
else if (distance_1 > 6 && distance_1 <= 10) // set up volume =1
{
check_volume = 1;
Audio.setVolume(check_volume);
delay(400);
distance_1 = getdistance(300);
}
else
{
if (distance_1 > 10&& distance_1 <= 13) // set up volume =2
{
check_volume = 2;
Audio.setVolume(check_volume);
delay(400);
distance_1 = getdistance(300);
}
else if (distance_1 > 13 && distance_1 <= 15)
{
check_volume = 3;
Audio.setVolume(check_volume);
delay(400);
distance_1 = getdistance(300);
}
else if (distance_1 > 15 && distance_1 <= 18)
{
check_volume = 4;
Audio.setVolume(check_volume);
delay(400);
distance_1 = getdistance(300);
}
else if (distance_1 > 18 && distance_1 <= 21)
{
check_volume = 5;
Audio.setVolume(check_volume);
delay(400);
distance_1 = getdistance(300);
}

// Audio.setVolume(check_volume);
// delay(500);
}

if (count_time > 20)
{
count_time = 0;
}
else if (count_time==20)
{

Serial.print("Test thanh cong: ");
Serial.println(check_time);

if(check_time==1 ) // Next track
{
if (check_play==0)
{
Audio.play(SubFile.name());
Serial.print("Playing ");
Serial.println(SubFile.name());
check_play = 1;
kt=1;
delay(1000);
}
else if (check_play==1 )
{
Audio.stopPlayback();
SubFile = Root.openNextFile();
Serial.println(SubFile.name());
Audio.play(SubFile.name());
kt=1;
delay(1000);
check_play=0;
}
}
else if(check_time==2) // return track
{
Audio.stopPlayback();
Root.rewindDirectory();
SubFile = Root.openNextFile();
SubFile = Root.openNextFile();
Serial.println(SubFile.name());
Audio.play(SubFile.name());
kt=1;
delay(2000);
}
else if ( check_time > 2) // pause and play
{
if ( kt == 1 )
{
Audio.pause();
kt=0;
}
else if ( kt == 0)
{
Audio.pause();
kt=0;
delay(2000);
}
}
check_time = 0;
}

Serial.print(check_volume);
Serial.print(" , ");
Serial.print(count_time);
Serial.print("--");
Serial.print(distance_1);
Serial.print("--");
Serial.println(check_time);

count_time++;
delay(30);
}

float getdistance(int i)
{
delay(i);// bien do time
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration_1 = pulseIn(echoPin, HIGH);
distance_1 = (duration_1/2) / 29.1;
}

Please help me!

When you can't be bothered to read the stickies at the top of the forum and post your code correctly? Why should we?