If I understand you correctly, you want to continue to play the sound until the slider touches whether it moves or not. To do this, register one method as an object for UIControlEventTouchDown events (and, possibly, UIControlEventTouchDragInside), and the other for some combination of UIControlEventTouchDragExit / TouchUpOutside / TouchUpInside / TouchCancel (depending on what you need). The first method starts to play the sound, and the second stops it.
If you want to play another sound when the slider is still touched but not moving, I would recommend starting the timer every time you get the TouchDown / ValueCahanged / etc event:
self.touchTimer = [NSTimer scheduledTimerWithTimeInterval: kDelay target:self selector:@selector(noMovement:) userInfo:nil repeats:NO];
Then, whenever you get another ValueChanged, you cancel the timer and start another (or, better, move the original one). When the timer starts, it means that the user has not moved the slider with kDelay, and you can change the playback sound. (You need to cancel the timer when you receive the TouchUpInside / Outside event.)
source share