IR trouble

I have created a program where 2.wav is played as soon as the Ir sensor on pin 3 senses something but even when it senses something, it doesn`t play 2.wa and nor do the lights operate in the manner they are supposed to.
1.wav is, however, getting played.
The code is:
#include <SD.h>
#include <SPI.h>
#include <TMRpcm.h>
#define SD_ChipSelectPin 4

TMRpcm tmrpcm;

void setup() {

pinMode (2,OUTPUT);
pinMode (3,INPUT);
pinMode (7,OUTPUT);
pinMode (8,OUTPUT);
SD.begin(4);
tmrpcm.speakerPin = 9;
int diw=0;
digitalWrite (7,HIGH);
delay(2000);
digitalWrite (7,LOW);
delay(2000);
digitalWrite (7,HIGH);
Serial.begin(9600);

Serial.println(“initialization done.”);
}

void loop() {
if (!SD.begin(4)) {
digitalWrite (8,HIGH);
Serial.println(“SD NOT FOUND, Please Insert.”);
} else {
Serial.println(“SD FOUND”);
digitalWrite (7, LOW);
delay(3000);
digitalWrite (7,HIGH);
tmrpcm.setVolume(7);
tmrpcm.play(“1.wav”);
Serial.println(“FILE FOUND”);

return;
}
if(digitalRead(3)== HIGH){
Serial.println(“You are ready for your song.”);
tmrpcm.setVolume(7);
tmrpcm.play(“2.wav”);

digitalWrite (7,LOW);
digitalWrite (8,LOW);
digitalWrite (2,HIGH);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,HIGH);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,HIGH);
digitalWrite (8,LOW);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,LOW);
digitalWrite (2,HIGH);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,HIGH);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,HIGH);
digitalWrite (8,LOW);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,LOW);
digitalWrite (2,HIGH);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,HIGH);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,HIGH);
digitalWrite (8,LOW);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,LOW);
digitalWrite (2,HIGH);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,HIGH);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,HIGH);
digitalWrite (8,LOW);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,LOW);
digitalWrite (2,HIGH);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,HIGH);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,HIGH);
digitalWrite (8,LOW);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,LOW);
digitalWrite (2,HIGH);
delay(500);
digitalWrite (7,LOW);
digitalWrite (8,HIGH);
digitalWrite (2,LOW);
delay(500);
digitalWrite (7,HIGH);
digitalWrite (8,LOW);
digitalWrite (2,LOW);
delay(500);

} else {
Serial.println(“Come close to the system, Mumma”);
digitalWrite (8,HIGH);
delay(15000);
digitalWrite(8,LOW);}
}

Does pin 3 ever go HIGH ?

Why keep initialising the SD in loop() ?

What do you see on the Serial monitor ?

You are using INPUT instead of the more common INPUT_PULLUP. This works only if you have pullup resistors, pulldown resistors, or something that properly drives the input. How do you have things wired? Where is your wiring diagram?