PhoneGap中文网

 找回密码
 立即注册
查看: 27276|回复: 5
打印 上一主题 下一主题

在搜索里加的语音搜索 PhoneGap 可以实现的吗?

[复制链接]

3

主题

29

帖子

167

积分

注册会员

Rank: 2

积分
167
跳转到指定楼层
楼主
发表于 2014-5-25 18:33:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在搜索里加的语音搜索 phonegap 可以实现的吗?

欢迎讨论qq:106079595
回复

使用道具 举报

493

主题

2035

帖子

6894

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6894
沙发
发表于 2014-5-26 09:32:27 | 只看该作者
可以用 html5的语音   也可以用插件方式实现,看看原生怎么整的  
回复 支持 反对

使用道具 举报

3

主题

29

帖子

167

积分

注册会员

Rank: 2

积分
167
板凳
 楼主| 发表于 2014-5-26 22:32:16 | 只看该作者
树根boss  可以帮忙给个教材不
回复 支持 反对

使用道具 举报

3

主题

29

帖子

167

积分

注册会员

Rank: 2

积分
167
地板
 楼主| 发表于 2014-5-27 13:19:28 | 只看该作者
测试: html5的语音输入功能
支持: webkit核心的浏览器

Demo: <input type="text" x-webkit-speech lang="zh-CN" />

这个是html5 用的  好像没有效果 我试了

我想把语音变成文字 再点下搜索
回复 支持 反对

使用道具 举报

3

主题

29

帖子

167

积分

注册会员

Rank: 2

积分
167
5#
 楼主| 发表于 2014-5-27 13:22:02 | 只看该作者
Android调用谷歌语音识别其实很简单,直接利用 intent 跳转到手机里面的谷歌搜索,代码也很简单,直接调用方法 startVoiceRecognitionActivity()

如果大家手机里面没有谷歌搜索,这里会弹出一个下载框给我们选择下载,识别完成后,得到result List数组,里面有很多识别结果,我们获取第一个就可以了。

贴出代码:

  1.   /**
  2.   * 調用方法
  3.   */
  4. private void startVoiceRecognitionActivity() {
  5.   try {
  6.    // 通过Intent传递语音识别的模式,开启语音
  7.    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
  8.    // 语言模式和自由模式的语音识别
  9.    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
  10.      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
  11.    // 提示语音开始
  12.    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音");
  13.    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh-HK");
  14.    // 开始语音识别
  15.    startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
  16.   } catch (Exception e) {
  17.    e.printStackTrace();
  18.    showDialog();
  19.   }
  20. }

  21. private void showDialog() {
  22.   AlertDialog.Builder builder = new Builder(MainActivity.this);
  23.   builder.setMessage(R.string.dialog_content);
  24.   builder.setTitle(R.string.dialog_title);
  25.   builder.setNegativeButton(R.string.download,
  26.     new android.content.DialogInterface.OnClickListener() {
  27.      @Override
  28.      public void onClick(DialogInterface dialog, int which) {
  29.       dialog.dismiss();
  30.       Uri uri = Uri.parse(getApplication().getString(R.string.voice_url));
  31.       Intent it = new Intent(Intent.ACTION_VIEW, uri);
  32.       startActivity(it);
  33.      }
  34.     });
  35.   builder.setPositiveButton(R.string.cancel,
  36.     new android.content.DialogInterface.OnClickListener() {
  37.      @Override
  38.      public void onClick(DialogInterface dialog, int which) {
  39.       dialog.dismiss();
  40.      }
  41.     });
  42.   builder.create().show();
  43. }

  44. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  45.   if (requestCode == VOICE_RECOGNITION_REQUEST_CODE
  46.     && resultCode == RESULT_OK) {
  47.    ArrayList<String> results = data
  48.      .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

  49.    if (results.size() > 0) {
  50.     voiceView.setText(results.get(0));
  51.    } else {
  52.     Utils.getInstance().showTextToast("檢測失敗,請重新點擊識別!", context);
  53.    }
  54.   }
  55. }

  56.     <string name="voice_url">https://play.google.com/store/apps/details?id=com.google.android.voicesearch.x</string>
  57.     <string name="dialog_title">提示</string>
  58.     <string name="dialog_content">未找到語音識別設備,是否下載?</string>
  59.     <string name="cancel">取消</string>
  60.     <string name="download">下載</string>
复制代码
回复 支持 反对

使用道具 举报

0

主题

54

帖子

304

积分

中级会员

Rank: 3Rank: 3

积分
304
6#
发表于 2016-1-25 13:56:34 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-5-20 21:32 , Processed in 0.039581 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表