我想只播放一个声音的时间很短,比声音文件的持续时间更短。因此,在我开始演奏的同时,我想排起队来完成一项能阻止声音的任务。
我看到了两种排队等待停止方法的选择: NSTimer和执行器选择:withObject:afterDelay:
有没有人知道哪一个最有可能准时触发,或者有更高的优先级?这并不是说我必须以毫秒的精度被调用,但是精确到0.1秒将是很好的。
增编:有人知道我在哪里能找到关于不同计时器和延迟任务优先级的文档吗?例如,以下人员将如何:
调用视图的tasks
在不同的线程中尝试这样做会有用吗?
发布于 2009-11-17 13:36:07
performSelector:withObject:afterDelay:将创建一个计时器来知道何时触发,因此这两种方法都应该是同样(不)可靠的。如果您的代码在主线程上执行昂贵的计算,并且不将控制返回给run循环,或者如果run循环必须处理大量事件,则计时器将无法按时启动。
发布于 2009-11-17 12:05:41
有一个NSTimer,但时间间隔要比你的声音要短得多。当你的计时器启动的时候,当你的声音响起时,你会数一数从你启动它到现在已经过去了多少时间。当时间超过了你设定的距离,你就停止了声音。
发布于 2009-11-17 05:42:47
根据我的理解,它们应该是一样的。然而,最好的解决办法是自己测试它。运行一系列测试,并记录确切的时间,然后看看哪个更接近。
https://stackoverflow.com/questions/1746826
复制相似问题