2016-02-13 146 views
2

在我的应用程序中,我有一个滑块,当我移动到一个刻度标记时会发出“滴答”声。是否有可能让声音更快?

这是我所说的功能,使其:当用户拖动滑块更快的声音更快

func playSound() { 
    if player.playing { 
     player.stop() 
    } 

    let qualityOfServiceClass = QOS_CLASS_BACKGROUND 
    let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0) 
    dispatch_async(backgroundQueue, { 
     self.player.prepareToPlay() 
     self.player.play() 
    }) 
} 

不过,我想实现的是...像“蜱蜱蜱“,就像你在汽车的机械旋钮上调节热量时会听到的那样。

随着我的实施,我只能得到一个“滴答声”的快速拖动,导致player.stop()取消了前一个。所以我在想,如果拖动速度更快,我能否让声音播放更快?

任何形式的帮助,高度赞赏。

回答

4

你可以这样做增加速度:

self.player.prepareToPlay() 
self.player.enableRate = true 
self.player.rate = 2.0 
self.player.play() 

如果要循环,可以补充一点:

self.player.numberOfLoops = 3 
0

也许我该得太多,但这里就是我将着手: 你应该创建一个包含多达AVAudioPlayer情况下为您的滑块值NSArray。 ie:如果您的滑块范围从0到10,则创建一个包含10个AVAudioPlayer的数组。

用户移动滑块后,请在您的NSArrayAVAudioPlayer处获取滑块值的索引并播放它。我会仔细考虑滑块的范围,就好像范围太低,并且用户太快地移动滑块,您可能会遇到与现在相同的问题。

相关问题