2016-02-13 88 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處獲取滑塊值的索引並播放它。我會仔細考慮滑塊的範圍,就好像範圍太低,並且用戶太快地移動滑塊,您可能會遇到與現在相同的問題。

相關問題