7

beendet ist Bitte beachten Sie, dass diese Frage für Cordova/PhoneGap/Hybrid Apps gilt.Cordova: Gibt es eine Möglichkeit zu erkennen, ob Voice Dictation auf iOS

Ich habe eine <textarea> für die ich möchte, dass die App in einer bestimmten Weise nur dann, wenn Voice-Diktier-Eingabe beendet ist - d. H Benutzerregisterkarten "Fertig". Dies erweist sich jedoch als eher schwierig.

iOS UIKit bietet dictationRecordingDidEnd Ereignis unter UITextInput aber ich bin nicht sicher, ob dies kann auch in einem Hybrid-App verwendet werden. (iOS Developer Library doc here)

BEARBEITEN: Ich verwende ionic-plugin-keyboard.

Alle Ideen würden sehr geschätzt werden.

Antwort

4

Vielleicht können Sie versuchen, die SpeechRecognitionPlugin oder cordova-plugin-iflyspeech

Für die verwenden cordova-plugin-iflyspeech Sie haben 13 Veranstaltungen wie die Kontrolle über die Sprachsteuerung in Ihrem iOS-Gerät haben:

SpeechBegin 
SpeechEnd 
SpeechCancel 
SpeechResults 
SpeechError 
VolumeChanged 

SpeakBegin 
SpeakPaused 
SpeakResumed 
SpeakCancel 
SpeakCompleted 
SpeakProgress 
BufferProgress 

und Unterstützung hat für eine große Anzahl von Sprachen wie: Englisch (US), Englisch (UK), Französisch, Spanisch, Italienisch usw.

Dies ist ein Beispiel für die Dokumentation

function onLoad() { 
    document.addEventListener("deviceready", onDeviceReady, false); 
} 
function onDeviceReady() { 
    $('div#status').html('speech engine ready'); 
} 
function startReading() { 
    var text = $('textarea#read').val(); 
    navigator.speech.startSpeaking(text, {voice_name: 'xiaoyan'}); 
} 
function stopReading() { 
    navigator.speech.stopSpeaking(); 
} 
function startListening() { 
    $('div#status').html('Listening, please speak.'); 

    navigator.speech.startListening({language:'en-US'} function(str) { 
      // this is what the device hear and understand 
      $('textarea#read').val(str); 
     }); 
} 
function stopListening() { 
    navigator.speech.stopListening(); 
} 

Und hier können Sie die iOS-Methode binden dictationRecordingDidEnd an: stopListening(); oder cancelListening(); Methoden je die Aktion.

+2

Ich würde das cordova-plugin-iflyspeech Plugin auch empfehlen. –