2014-12-16 4 views
2

Я использую текст для речи в iOS 7 (AVSpeechUtterance).Регистрация для обратного вызова текста в речь с помощью AVSpeechSynthesizer

Есть ли способ зарегистрировать обратный вызов, который будет вызываться после завершения речи?

Мне нужно знать, чтобы я мог отключить кнопку воспроизведения во время работы речи и снова включить кнопку, когда речь будет вестись.

+0

Я не использовал это раньше, но похоже, что вы отправляете экземпляр AVSpeechUtterance в AVSpeechSynthesizer для того, чтобы говорить по телефону строка. Это верно? Если это так, используемый вами AVSpeechSynthesizer имеет свойство 'delegate', которое вы можете установить, чтобы получить методы обратного вызова. [Здесь] (https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVSpeechSynthesizerDelegate_Ref/index.html#//apple_ref/occ/intf/AVSpeechSynthesizerDelegate) - это методы обратного вызова, которые вы можете использовать, если вы указываете 'делегат'. – keithbhunter

ответ

6

В соответствии с Apple Doc, AVSpeechUtterance является базовой единицей синтеза речи.

AVSpeechSynthesizer имеет делегата: AVSpeechSynthesizerDelegate. Этот протокол содержит интересные методы, позволяющие решить вашу проблему. Цитирую:

В Swift:

speechSynthesizer(_:didCancelSpeechUtterance:) 
speechSynthesizer(_:didContinueSpeechUtterance:) 
speechSynthesizer(_:didFinishSpeechUtterance:) 
speechSynthesizer(_:didPauseSpeechUtterance:) 
speechSynthesizer(_:didStartSpeechUtterance:) 
speechSynthesizer(_:willSpeakRangeOfSpeechString:utterance:) 

В Objective C

speechSynthesizer:didCancelSpeechUtterance: 
speechSynthesizer:didContinueSpeechUtterance: 
speechSynthesizer:didFinishSpeechUtterance: 
speechSynthesizer:didPauseSpeechUtterance: 
speechSynthesizer:didStartSpeechUtterance: 
speechSynthesizer:willSpeakRangeOfSpeechString:utterance: 

Посмотрите на Apple Doc

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

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