科尔多瓦:有没有办法来检测语音听写是否已在iOS上结束
请注意,这个问题适用于Cordova / PhoneGap / Hybrid应用程序。
我有一个<textarea>
,我希望应用程序只有在语音听写输入已经结束时以某种方式运行 - 即用户选项卡“完成”。 但是,这证明是相当困难的。
iOS的UIKit
在UITextInput
下提供dictationRecordingDidEnd
事件,但我不确定这是否可以在混合应用程序中使用。 (iOS开发者库文档在这里)
编辑:我正在使用ionic-plugin-keyboard
。
任何想法将不胜感激。
也许你可以尝试使用SpeechRecognitionPlugin或cordova-plugin-iflyspeech
对于cordova-plugin-iflyspeech
您有13个事件可以控制iOS设备中的语音控制,如:
SpeechBegin
SpeechEnd
SpeechCancel
SpeechResults
SpeechError
VolumeChanged
SpeakBegin
SpeakPaused
SpeakResumed
SpeakCancel
SpeakCompleted
SpeakProgress
BufferProgress
并且支持大量语言,如:英语(美国),英语(英国),法语,西班牙语,意大利语等。
这是文档的一个例子
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();
}
在这里,您可以将iOS方法dictationRecordingDidEnd
绑定到: stopListening();
或者cancelListening();
方法,取决于行动。
上一篇: Cordova: Is there a way to detect whether Voice Dictation has ended on iOS