Ios 如何在Apple Watch中无需按下按钮即可开始和停止听写
我编写了在苹果手表上使用听写的代码。我使用presentTextInputControllerWithSuggestions直接开始听写 但是,我有两个问题:Ios 如何在Apple Watch中无需按下按钮即可开始和停止听写,ios,swift,watchkit,watchos-2,dictation,Ios,Swift,Watchkit,Watchos 2,Dictation,我编写了在苹果手表上使用听写的代码。我使用presentTextInputControllerWithSuggestions直接开始听写 但是,我有两个问题: 我想在我的应用程序启动时开始听写。为此,我在willActivate方法中调用了我的函数,但这样一来,屏幕上只会出现一个等待的图像,而不是听写的第一页 我想在不按“完成”按钮的情况下停止听写。我不知道这是否可能,我怎样才能做到 这是我的代码: func dictation(){ self.presentTextInpu
- 我想在我的应用程序启动时开始听写。为此,我在willActivate方法中调用了我的函数,但这样一来,屏幕上只会出现一个等待的图像,而不是听写的第一页
- 我想在不按“完成”按钮的情况下停止听写。我不知道这是否可能,我怎样才能做到
func dictation(){
self.presentTextInputControllerWithSuggestions([], allowedInputMode: WKTextInputMode.Plain, completion:{
(results) -> Void in
//myCode
})
}
override func willActivate(){
super.willActivate()
dictation()
}
override init(){
super.init()
print("start init")
let seconds = 1.0
let delay = seconds * Double(NSEC_PER_SEC) // nanoseconds per seconds
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
self.dictation()
})
print("end init")
}
您有解决方案吗?谢谢您的帮助@Feldur 我迟迟没有试过,但似乎奏效了 这是我的代码:
func dictation(){
self.presentTextInputControllerWithSuggestions([], allowedInputMode: WKTextInputMode.Plain, completion:{
(results) -> Void in
//myCode
})
}
override func willActivate(){
super.willActivate()
dictation()
}
override init(){
super.init()
print("start init")
let seconds = 1.0
let delay = seconds * Double(NSEC_PER_SEC) // nanoseconds per seconds
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
self.dictation()
})
print("end init")
}
这是我的日志:
start init
end init
start awakeWithContext
end awakeWithContext
start willactivate
end willactivate
start didAppear
end didAppear
start dictation
屏幕出现,然后开始听写
当用户停止说话时,您是否有停止听写的想法?相关:如果您在短时间延迟后或在DidAspect中发布听写调用,会发生什么情况?@Feldur我在开始和完成一个函数时打印日志。这是我的日志:“开始初始化结束初始化开始唤醒WithContext结束唤醒WithContext开始将激活结束将激活开始显示开始听写结束显示”我总是有我的等待屏幕。你需要处理音频流以寻找安静(没有能量)谢谢。你知道是否有API或本机组件来做这件事吗?我不知道。也许在AV中?如果你在功率谱上搜索,你可以找到数学公式。我会用这种方法寻找更多的。如果有人有另一个想法,我已经能够通过一个名为EZAudio的库检测到静音(确切地说:音量低于阈值的时间段)(还允许您制作语音波形的动画图),不幸的是,它现在已经停止,但您仍然可以使用它。问题是我只能在iPhone应用程序中使用它,因为WatchOS抱怨EZAudio架构不受支持,我现在知道如何重新编译它。