如何让音频从NSDatePicker定时播放



我正在制作一个应用程序,该应用程序需要在未来由用户使用NSDatePicker设置的时间播放声音,我该如何做到这一点?

我已经有了AVAudioPlayer设置,我只需要帮助自己玩。请写下如何做,以回答整个问题,而不是把我引向别处。

目的是获得一个警报,可以由用户在特定时间设置使用NSDatePicker和使用我已经制作并添加到项目的声音。然后,用户必须自己关闭警报,而不是自动关闭。所以我打算使用AVAudioPlayer和一个关闭按钮来这样做,但是我无法通过计时。

对于一个短暂的延迟,你可以告诉AVAudioPlayer现在开始播放但是有延迟,你不使用NSDate(从UIDatePicker返回的值)来做这件事。这不是AVAudioPlayer考虑时间的方式。它根据设备时间进行思考。

所以,你需要算出播放应该从当前设备时间开始多长时间。这样,您就可以使用该值调用音频播放器的playAtTime:。文档中有一个例子:

https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioPlayerClassReference///apple_ref/occ/instm/AVAudioPlayer/playAtTime:

对于一个很长的延迟,你需要开始播放,比如说,明天上午10点,你需要创建一个将在那个时候触发的uninotification。这可以包括一个声音;如果这还不够好,你必须希望你的应用程序正在运行(这样你就可以接收通知),或者用户在通知出现时点击通知(这样你就可以听到通知)-否则,正如Duncan所说,你不能这样做。

简短的回答:你不能那样做。

iPhone只是部分时间处于解锁状态,你的应用也只是部分时间在运行。

如果你想让声音在未来几分钟播放,而手机是醒着的,应用程序仍然在前台,你可以这样做。

你只需要从日期选择器中取出NSDate,使用NSDate方法timeIntervalSinceNow来计算未来日期是多少秒,然后启动一个NSTimer,它的选择器播放你的声音。

如果你的应用可能被挂起,或者手机可能被锁定,你需要使用本地通知(UILocalNotification)。通知只是向用户显示一条消息(可能是播放应用自带的声音)。我猜如果你想播放的声音包含在应用中,那么你可以设置本地通知来播放它。

你能告诉我们你想做什么吗?

你想让它在未来任意的日期和时间工作吗?你是否需要播放应用程序内置的声音?

相关内容

  • 没有找到相关文章