2016-07-13 8 views
2

Я написал код, чтобы использовать диктовку на моих яблочных часах. Я использовал presentTextInputControllerWithSuggestions без предложения напрямую начать диктовку.Как начать и прекратить диктовку в Apple Watch witout нажатием кнопки

Но, у меня есть две проблемы:

  • Я хочу начать диктовку, когда начинается мое приложение. Для этого я вызываю свою функцию в методе willActivate, но при этом на экране появляется только ожидающее изображение, а не моя первая страница с диктовкой.
  • Я хочу прекратить диктовку без нажатия кнопки «Готово». Я не знаю, возможно ли это, и как я могу это сделать.

Существует мой код:

func dictation(){ 
     self.presentTextInputControllerWithSuggestions([], allowedInputMode: WKTextInputMode.Plain, completion:{ 
      (results) -> Void in 
       //myCode 
      }) 
    } 
override func willActivate(){ 
    super.willActivate() 
    dictation() 
} 

У вас есть решение?

+0

http://www.stackoverflow.com/questions/35268552/how-to-stop-speech-recognition-dictation-in-apple-watch-when-the-user-stops-sp –

+0

Что произойдет, если вы опубликуете вызов диктовать после короткой задержки или в didAppear? – Feldur

+0

@Feldur Я печатаю журнал, когда начинаю и заканчиваю функцию. Есть мои журналы: «начать INIT конца инициализации начать awakeWithContext конца awakeWithContext начать willactivate конца willactivate начать didAppear начала диктант конца didAppear» и у меня всегда есть мой экран ожидания –

ответ

0

Спасибо за вашу помощь @Feldur

Я попытался с задержкой, и это похоже на работу

Там мой код:

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 

Появляется мой экран и после этого начинается моя диктовка.

У вас есть идея прекратить диктовку, когда пользователь перестает говорить?

+0

Вам нужно обрабатывать аудиопоток ищут тишину (отсутствие энергии) – Feldur

+0

Спасибо. Знаете ли вы, есть ли API или собственный компонент для этого? –

+0

Не знаю. Может быть, в AV? Если вы google по спектрам мощности, вы можете найти математику. – Feldur

 Смежные вопросы

  • Нет связанных вопросов^_^