请注意,这个问题适用于Cordova / PhoneGap / Hybrid应用程序. 我有一个 textarea我希望应用程序仅在语音听写输入结束时以某种方式运行 – 即用户标签“完成”.然而,这被证明是相当困难的.
我有一个< textarea>我希望应用程序仅在语音听写输入结束时以某种方式运行 – 即用户标签“完成”.然而,这被证明是相当困难的.
iOS的UIKit在UITextInput下提供了dictationRecordingDidEnd事件,但我不确定这是否可以在混合应用程序中使用. (iOS Developer Library doc here)
编辑:我正在使用离子插件键盘.
任何想法将不胜感激.
也许你可以尝试使用 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();方法,取决于行动.