I tell it to send a command to play and it is constantly resending the command
Yes that is what you are telling it to do.
What you need to do is only tell it to play then the pin first becomes low not when it is low.
Look at the state change code in the IDE’s examples to see how to detect a change rather than a logic level.