2014-11-02 90 views
0

我正在用iOS上的新語言swift測試鍵盤擴展,但我無法播放keyPressed事件的聲音,並且存在延遲,大約10秒鐘,當我單擊鍵。iOS快速自定義鍵盤沒有聲音和延遲

這是我的代碼:

@IBAction func keyPressed(button: UIButton) { 
    var string = button.titleLabel!.text 
    (textDocumentProxy as UIKeyInput).insertText("\(string!)") 
    AudioServicesDisposeSystemSoundID(1104) 
    AudioServicesPlaySystemSound(1104) 
    UIView.animateWithDuration(0.2, animations: { 
     button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2.0, 2.0) 
     }, completion: {(_) -> Void in 
      button.transform = 
      CGAffineTransformScale(CGAffineTransformIdentity, 1, 1) 
    }) 
} 

感謝您的任何意見或建議...

+0

爲什麼每次按下按鍵時都處理系統聲音?這似乎效率很低.. – lxt 2014-11-02 04:53:17

+0

我試過在didLoad處置,但我得到了相同的結果。 – jezuz 2014-11-02 04:56:41

+0

我基於以下代碼:https://www.dropbox.com/s/gfewd0qekxr5u4i/CustomKeyboardFinal.zip?dl=0 – jezuz 2014-11-02 05:18:41

回答

0

你需要另一個線程來播放聲音。用戶需要允許完全訪問才能工作。所以一定要確保你爲這個在擴展

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),  
{ 
    AudioServicesPlaySystemSound(1104); 
});  

對於Objective-C中的info.plist中要求只是添加了^符號中的{

0

你需要移動AudioServicesDisposeSystemSoundID(1104)deinit方法前。