Ios 有可能使声音变快吗?
在我的应用程序中,我有一个滑块,当我移动到一个刻度时,它会发出“刻度”的声音 下面是我调用的函数:Ios 有可能使声音变快吗?,ios,swift,avaudioplayer,Ios,Swift,Avaudioplayer,在我的应用程序中,我有一个滑块,当我移动到一个刻度时,它会发出“刻度”的声音 下面是我调用的函数: func playSound() { if player.playing { player.stop() } let qualityOfServiceClass = QOS_CLASS_BACKGROUND let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0
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()会取消前一个声音。所以我在想,当拖动速度更快时,我是否能让声音播放得更快
非常感谢您提供的任何帮助。也许我想得太多了,但以下是我将如何继续: 您应该创建一个
NSArray
,其中包含与滑块值一样多的AVAudioPlayer
实例。
ie:如果你的滑块范围从0到10,创建一个包含10个AVAudioPlayer的数组
用户移动滑块后,在
NSArray
中的滑块值索引处获取AVAudioPlayer
,然后播放。我会仔细考虑滑块的范围,如果范围太小,用户移动滑块太快,您可能会遇到与现在相同的问题。您可以这样做来提高速率:
self.player.prepareToPlay()
self.player.enableRate = true
self.player.rate = 2.0
self.player.play()
如果要循环,可以添加以下内容:
self.player.numberOfLoops = 3