我正在制作一个应用程序,该应用程序需要在用户设置的未来某个时间播放声音,NSDatePicker
我该怎么做?
我已经有了AVAudioPlayer
设置,我只需要播放本身的帮助。请写下如何做到这一点,以回答整个问题,而不是把我带到别处。
目的是获得一个警报,用户可以在特定时间使用NSDatePicker
和使用我制作并添加到项目中的声音来设置警报。然后用户必须关闭警报本身而不是自动关闭。所以我打算使用AVAudioPlayer
一个关闭按钮来这样做,但我无法超越时间。
我正在制作一个应用程序,该应用程序需要在用户设置的未来某个时间播放声音,NSDatePicker
我该怎么做?
我已经有了AVAudioPlayer
设置,我只需要播放本身的帮助。请写下如何做到这一点,以回答整个问题,而不是把我带到别处。
目的是获得一个警报,用户可以在特定时间使用NSDatePicker
和使用我制作并添加到项目中的声音来设置警报。然后用户必须关闭警报本身而不是自动关闭。所以我打算使用AVAudioPlayer
一个关闭按钮来这样做,但我无法超越时间。
对于短暂的延迟,您可以告诉 AVAudioPlayer现在开始播放,但有延迟,您不使用 NSDate(从 UIDatePicker 返回的值)来执行此操作。这不是 AVAudioPlayer 对时间的看法。它考虑设备时间。
因此,您需要计算从当前设备时间开始播放的时间。这样,您可以playAtTime:
使用该值调用音频播放器。文档中有一个示例:
对于长时间的延迟,您需要在明天上午 10 点开始播放,您需要创建一个将在该时间触发的 UINotification。这可以包括声音;如果这还不够好,您将不得不希望您的应用程序正在运行(以便您可以接收通知)或者用户在通知出现时点击通知(以便您可以听到) - 否则,正如邓肯所说,你做不到。
简短的回答:你不能那样做。
iPhone 仅在部分时间解锁,而您的应用仅在部分时间运行。
如果您正在谈论在未来几分钟内播放声音,而手机处于唤醒状态,并且应用程序仍处于前台,您可以这样做。
您只需要从日期选择器中获取 NSDate,使用该NSDate
方法timeIntervalSinceNow
来计算该日期未来的秒数,然后启动NSTimer
谁的选择器来播放您的声音。
如果您的应用程序可能被暂停,或者手机可能被锁定,您将需要使用本地通知 (UILocalNotification)。该通知只是向用户显示一条消息(可能播放您的应用程序附带的声音。)我想如果您要播放的声音包含在应用程序中,那么您可以设置本地通知来播放它。
你能告诉我们更多关于你想做的事情吗?
你想让它在未来的任意日期和时间工作吗?您需要播放应用程序内置的声音吗?