我在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)
})
}
提前感谢任何评论或建议...
答案 0 :(得分:0)
你需要在另一个线程中播放声音。用户需要允许完全访问才能使用。因此,请确保在扩展名
的info.plist中请求此操作dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
{
AudioServicesPlaySystemSound(1104);
});
对于Objective-C,只需在{
前面添加^符号答案 1 :(得分:0)
您需要将AudioServicesDisposeSystemSoundID(1104)
移至deinit
方法。