x-webkit-speech:为搜索框增加语音输入功能

w3c对语音输入有官方的说明:http://www.w3.org/2005/Incubator/htmlspeech/2010/10/google-api-draft.html
使用语音输入作用有:
1.提供除了键盘和鼠标的另一个输入方法,针对pc用户,当键盘不可用时也可以使用语音输入。
2.为手机用户提供更加方便的输入方法。

1.支持的浏览器
x-webkit-speech是webkit内核浏览器的私有属性(废话)。但现在只能在google的chrome 11以上才能使用。
实现过程大概是捕捉到语音后,数据发送到google的服务器进行语音识别,然后返回结果。所以没有足够强大大的研发能力和服务器资源,真没法支持这个服务。
作为普通话不标准经常被别人吐槽的人,使用语音搜索还是能十分准确地返回关键词,我顿时感动得一塌糊涂。

2.支持的标签
输入标签有input和textarea,实际上目前只有input支持。

 

3.检测浏览器是否支持

JavaScript代码
  1. if (document.createElement("input").webkitSpeech === undefined) {    
  2.     alert("Speech input is not supported in your browser.");    
  3. }    

 

4.直接使用
为input标签加上x-webkit-speech属性

XML/HTML代码
  1. <input type="search" x-webkit-speech />  

捕捉到语音输入后会直接将关键词填入到输入框里。

 

5.监听输入
若要监听输入变化以便做其他处理,使用onwebkitspeechchange属性添加处理函数。

XML/HTML代码
  1. <input type="search" x-webkit-speech onwebkitspeechchange="onChange()"/>  
JavaScript代码
  1. <script type="text/javascript">  
  2.     function onChange() {  
  3.         alert('changed');  
  4.     }  
  5. </script>  

 

6.注意:
如果原input中value不为空,输入会直接添加在原有文字后面。既然用webkit就要用placeholder了,不要再使用value为作输入提示了。

7.搜索前清空关键字:

JavaScript代码
  1. document.getElementById(‘test’).addEventListener(‘webkitspeechchange’, function(evt){  
  2. console.log(evt);  
  3. this.value = evt.results[0].utterance;  
  4. }, false);  


上一篇: php CURL post使用
下一篇: php文件读取详解
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2078
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑