Could be rewritten as

    .always => @play() if @playing

(And remove the `.done` and `.fail`-handlers.)