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