When a Sound object stops naturally, it is put in an illegal state where the handle variable is not null, but the handle itself has already been released. This state causes the play and isPlaying functions to have unintended behaviour.
When a Sound object naturally stops, it may or may not be marked stopped internally and it continues to have a non-null handle.
Calling isPlaying on this Sound returns whatever is currently stored in the playing variable, as a handle without a channel will not execute
Calling play will either not do anything as the Sound is already playing, or attempt to unpause the handle, which also doesnt do anything as the handle is already released.
Both of these issues have been fixed
isPlaying will always return false when a handle has already been released
play will throw away released handles and create new ones
When a Sound object stops naturally, it is put in an illegal state where the
handle
variable is not null, but the handle itself has already been released. This state causes theplay
andisPlaying
functions to have unintended behaviour.When a Sound object naturally stops, it may or may not be marked stopped internally and it continues to have a non-null handle.
isPlaying
on this Sound returns whatever is currently stored in theplaying
variable, as a handle without a channel will notexecute
play
will either not do anything as the Sound is alreadyplaying
, or attempt to unpause the handle, which also doesnt do anything as the handle is already released.Both of these issues have been fixed
isPlaying
will always returnfalse
when a handle has already been releasedplay
will throw away released handles and create new ones