I'm making an app which requires a sound to play at a time in the future set by the user using NSDatePicker
how would I do so?
I already have the AVAudioPlayer
setup, I just need the help with the playing itself. And please write how to do so that answers the entire question instead of leading me elsewhere.
The aim is to get an alarm that can be set by the user at a specific time using NSDatePicker
and using a sound I have made and added to the project. And then for the user to have to turn the alarm off itself not an automatic turn off. So I was going to use AVAudioPlayer
and an off button to do so but I couldn't get past the timing.
Short answer: You can't do that.
An iPhone is only unlocked part of the time, and your app is only running part of the time.
If you are talking about making a sound play a few minutes in the future, while the phone is awake, and the app is still in the foreground, that you could do.
You'd just need to take the NSDate from the date picker, use the NSDate
method timeIntervalSinceNow
to figure out how many seconds in the future that date is, and then start an NSTimer
who's selector plays your sound.
If your app might be suspended, or the phone might be locked, you'll need to use a local notification (UILocalNotification). The notification just displays a message to the user (possibly playing a sound that is shipped with your app.) I guess if the sound you want to play is included with the app then you could set up your local notification to play it.
Can you tell us more about what you want to do?
Do you want this to work at any arbitrary date and time in the future? Do you need to play a sound that is built into your app?