Well, you still call player.close() several times.
I don't see why you do that, anyway. Why the class must have the responsibility to stop the player?
I don't see why you do that, anyway. Why the class must have the responsibility to stop the player?