Problem with triggering the DfPlayer Mini

Hi everyone, I have a problem when I try to Trigger a music/sound and when I release the trigger button the sounds/music isn’t stop

In this Sketch, When I Trigger the button, It’s loop a Silence but when I release the button it sound one time:

int pulsador=0;
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

void setup() {
pinMode(2, OUTPUT);
pinMode(4, INPUT);
Serial.begin (9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
delay(1); // delay 1ms to set volume
mp3_set_volume (30); // value 0~30
}

void loop() {
pulsador = digitalRead(4);
if(pulsador==HIGH) {
mp3_play (1);
}
else{
}

}

And in this, when a trigger the button, enter in a Loop where the sound it’s keeps but when I release the button it’s still one time or when the sound/music ends:

int pulsador=0;
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

//** Programa **//
void setup() {
pinMode(2, OUTPUT);
pinMode(4, INPUT);
Serial.begin (9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
delay(1); // delay 1ms to set volume
mp3_set_volume (30); // value 0~30
}

void loop() {
pulsador = digitalRead(4);
if(pulsador==HIGH) {
mp3_play (1);
delay (7000);
}
else{
}

}

What’s is wrong with my codes?

PD: This is the Dfplayer Page:
http://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299

You need to trigger the sound when the button become pressed not every time it is held down. To do this use a variable to remember the last state of the input and only trigger when the last state was low and the current state is high.

Look at the state change example in the Arduino IDE.