PLZ Help me about IRRemote

I am going to make an Flexible IR Remote Controller

#include <IRremote.h>

IRsend irsend;
IRrecv irrecv=IRrecv(11);
decode_results results;
long unsigned int command;
void setup()
{
  Serial.begin(9600);
  Serial.println("Enabling IRin");
  irrecv.enableIRIn(); // Start the receiver
  Serial.println("Enabled IRin");
}

void loop() {
  while(1){
  if(Serial.available()){
    String r=Serial.readString();
    sendSignal();
  }
  if (irrecv.decode(&results)) {
    Serial.println(results.value,HEX);
    if(results.value!=4294967295)
      command=results.value;
    irrecv.resume(); // Receive the next value
  }
  }
}
void sendSignal(){
    Serial.println(command);
    irsend.sendNEC(command, 32);
    delay(40);
}

it works at first, but irrecv don't work after when the signal once sended
guys you know how to solve this problem, give me an answer please

call this

after every decode. here it's within the if


Note that the API has changed, have a look at the GitHub for details. You might want to adopt the new API

Like @J-M-L says, the IRremote library was recently updated. Code written for the older versions (<3.0) may not work with the newest version of the library. Either fix the older code to work with the new library (see here) or delete the new library from your sketchbook\libraries folder and install an older version of the library. Older versions are available through the IDE library manager.