A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© y1787257661 中级黑马   /  2015-1-7 03:23  /  869 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class VoiceRecognition extends Activity implements OnClickListener {  
  2.       
  3.     private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;  
  4.       
  5.     private ListView mList;  
  6.   
  7.     /**  
  8.      * Called with the activity is first created.  
  9.      */
  10.     @Override
  11.     public void onCreate(Bundle savedInstanceState)   
  12.     {  
  13.         super.onCreate(savedInstanceState);  
  14.   
  15.         setContentView(R.layout.main);  
  16.   
  17.         Button speakButton = (Button) findViewById(R.id.btn_speak);  
  18.            
  19.         mList = (ListView) findViewById(R.id.list);  
  20.   
  21.         // Check to see if a recognition activity is present  
  22.         PackageManager pm = getPackageManager();  
  23.         List<ResolveInfo> activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);  
  24.         if (activities.size() != 0)  
  25.         {  
  26.             speakButton.setOnClickListener(this);  
  27.         }  
  28.         else
  29.         {  
  30.             speakButton.setEnabled(false);  
  31.             speakButton.setText("Recognizer not present");  
  32.         }  
  33.     }  
  34.   
  35.   
  36.     public void onClick(View v)  
  37.     {  
  38.         if (v.getId() == R.id.btn_speak)  
  39.         {  
  40.             startVoiceRecognitionActivity();  
  41.         }  
  42.     }  
  43.   
  44.     private void startVoiceRecognitionActivity()  
  45.     {  
  46.         //通过Intent传递语音识别的模式  
  47.         Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);  
  48.         //语言模式和自由形式的语音识别  
  49.         intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);  
  50.         //提示语音开始  
  51.         intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech recognition demo");  
  52.         //开始执行我们的Intent、语音识别  
  53.         startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);  
  54.     }  
  55.   
  56.   
  57.     //当语音结束时的回调函数onActivityResult  
  58.     @Override
  59.     protected void onActivityResult(int requestCode, int resultCode, Intent data)  
  60.     {  
  61.         if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK)  
  62.         {  
  63.             // 取得语音的字符  
  64.             ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);  
  65.             mList.setAdapter(new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_1, matches));  
  66.         }  
  67.   
  68.         super.onActivityResult(requestCode, resultCode, data);  
  69.     }  
  70. }
复制代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
  3.     Android:orientation="vertical"
  4.     Android:layout_width="fill_parent"
  5.     Android:layout_height="fill_parent"
  6.     >
  7. <Button
  8. Android:id="@+id/btn_speak"
  9.     Android:layout_width="fill_parent"
  10.     Android:layout_height="wrap_content"
  11.     />
  12.     <ListView
  13.     Android:id="@+id/list"
  14.     Android:layout_width="fill_parent"
  15.     Android:layout_height="wrap_content"
  16.     />
  17. </LinearLayout>
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马