0

我正在 iOS 上使用新语言 swift 测试键盘扩展,但我无法为 keyPressed 事件播放声音,并且当我单击该键时会有大约 10 秒的延迟。

这是我的代码:

@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)
    })
}

提前感谢您的任何评论或建议...

4

2 回答 2

0

你需要转向AudioServicesDisposeSystemSoundID(1104)方法deinit

于 2015-01-19T16:49:08.230 回答
0

您需要在另一个线程中播放声音。用户需要允许完全访问才能使其正常工作。所以确保你在扩展的 info.plist 中请求这个

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

对于 Objective-C,只需在 { 前面添加 ^ 符号

于 2014-11-08T15:42:27.410 回答