Browse Source

日报添加语音识别

FANGLH 9 years ago
parent
commit
fba051ef07

+ 65 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkDailyAddActivity.java

@@ -20,7 +20,12 @@ import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.andreabaccega.widget.FormEditText;
+import com.iflytek.cloud.speech.RecognizerResult;
+import com.iflytek.cloud.speech.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
+import com.xzjmyk.pm.activity.audio.voicerecognition.VoiceToWord;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.circle.SendShuoshuoActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
@@ -41,7 +46,7 @@ import java.util.Map;
 /**
  * Created by FANGlh on 2016/11/1.
  */
-public class WorkDailyAddActivity extends BaseActivity {
+public class WorkDailyAddActivity extends BaseActivity implements RecognizerDialogListener {
 
     private static final int DAILY_SUBMITTED_SUCCESSFULLY = 1101;  //提交请求成功后返回
     private static final int CLEAR_AF_UPDATE_DOC_STATE = 1208;
@@ -174,6 +179,9 @@ public class WorkDailyAddActivity extends BaseActivity {
         }
     };
     private String fromqzone;
+    private ImageView voice_summary;
+    private ImageView voice_plan;
+    private ImageView voice_experience;
 
 
     public void doGrabJobContent(int mkeyValue) {
@@ -212,8 +220,57 @@ public class WorkDailyAddActivity extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         initView();
+        doVoiceClickEvent();
     }
+    String voicewords = new String();
+    private int voice_type = 0;
+    private void doVoiceClickEvent() {
+        final VoiceToWord voice = new VoiceToWord(WorkDailyAddActivity.this,"534e3fe2");
+        voice.setRecognizerDialogListener(this);  //自己调用自己
+        voice_summary.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                voice_type = 1;
+                voice.GetWordFromVoice();
+            }
+        });
 
+        voice_plan.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                voice_type = 2;
+                voice.GetWordFromVoice();
+            }
+        });
+
+        voice_experience.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                voice_type = 3;
+                voice.GetWordFromVoice();
+            }
+        });
+    }
+    @Override
+    public void onResult(RecognizerResult recognizerResult, boolean b) {
+        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+        System.out.println(text);
+        Toast.makeText(mContext, text, Toast.LENGTH_LONG).show();
+        voicewords = voicewords + text;
+
+        if (voice_type == 1){
+            add_summary.setText(voicewords);
+        }else if (voice_type == 2){
+            add_plan.setText(voicewords);
+        }else if (voice_type == 3){
+            add_experience.setText(voicewords);
+        }
+    }
+
+    @Override
+    public void onError(SpeechError speechError) {
+
+    }
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
         menu.clear();
@@ -314,6 +371,9 @@ public class WorkDailyAddActivity extends BaseActivity {
         summary_limit_tv = (TextView) findViewById(R.id.summary_limit_tv);
         plan_limit_tv = (TextView) findViewById(R.id.plan_limit_tv);
         experience_limit_tv = (TextView) findViewById(R.id.experience_limit_tv);
+        voice_summary = (ImageView) findViewById(R.id.voice_summary_iv);
+        voice_plan = (ImageView) findViewById(R.id.voice_plan_iv);
+        voice_experience = (ImageView) findViewById(R.id.voice_experience_iv);
 
         // 对输入的三项内容进行动态监听限制字数,只提醒,不限制输入
         add_summary.addTextChangedListener(new TextWatcher() {
@@ -442,6 +502,9 @@ public class WorkDailyAddActivity extends BaseActivity {
             }
         });
 
+
+
+
     }
 
     private void showsubmitDialog() {
@@ -576,6 +639,7 @@ public class WorkDailyAddActivity extends BaseActivity {
 
     private OnFinishOa onFinishOa;
 
+
     interface OnFinishOa{
         void onFinish();
     }

+ 18 - 22
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SpeechrecognitionActivity.java

@@ -1,9 +1,6 @@
 package com.xzjmyk.pm.activity.ui.me;
 
-import android.content.Intent;
 import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuItem;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
@@ -11,12 +8,11 @@ import android.widget.Toast;
 
 import com.iflytek.cloud.speech.RecognizerResult;
 import com.iflytek.cloud.speech.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
 import com.xzjmyk.pm.activity.audio.voicerecognition.VoiceToWord;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.iflytek.cloud.ui.RecognizerDialogListener;
-import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 
 /**
  * Created by FANGlh on 2017/1/11.
@@ -62,21 +58,21 @@ public class SpeechrecognitionActivity extends BaseActivity implements Recognize
 
     }
 
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        return super.onCreateOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == android.R.id.home){
-            Intent getintent = getIntent();
-            if (!StringUtils.isEmpty(getintent.getStringExtra("voice_request")) && "voice_request".equals(getintent.getStringExtra("voice_request"))){
-                Intent intent = new Intent();
-                intent.putExtra("voice_to_word",voicewords);
-                setResult(RESULT_OK,intent);
-            }
-        }
-        return super.onOptionsItemSelected(item);
-    }
+//    @Override
+//    public boolean onCreateOptionsMenu(Menu menu) {
+//        return super.onCreateOptionsMenu(menu);
+//    }
+//
+//    @Override
+//    public boolean onOptionsItemSelected(MenuItem item) {
+//        if (item.getItemId() == android.R.id.home){
+//            Intent getintent = getIntent();
+//            if (!StringUtils.isEmpty(getintent.getStringExtra("voice_request")) && "voice_request".equals(getintent.getStringExtra("voice_request"))){
+//                Intent intent = new Intent();
+//                intent.putExtra("voice_to_word",voicewords);
+//                setResult(RESULT_OK,intent);
+//            }
+//        }
+//        return super.onOptionsItemSelected(item);
+//    }
 }

BIN
WeiChat/src/main/res/drawable-hdpi/btn_yuyin_nor.png


BIN
WeiChat/src/main/res/drawable-hdpi/btn_yuyin_pressed.png


BIN
WeiChat/src/main/res/drawable-xhdpi/btn_yuyin_nor.png


BIN
WeiChat/src/main/res/drawable-xhdpi/btn_yuyin_pressed.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/btn_yuyin_nor.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/btn_yuyin_pressed.png


+ 35 - 9
WeiChat/src/main/res/layout/activity_add_work_daily.xml

@@ -47,6 +47,17 @@
                     android:paddingLeft="10dp"
                     android:layout_marginTop="8dp"
                     />
+                    <ImageView
+                        android:id="@+id/voice_summary_iv"
+                        android:layout_width="30dp"
+                        android:layout_height="30dp"
+                        android:background="@drawable/btn_yuyin_nor"
+                        android:layout_gravity="right"
+                        android:visibility="visible"
+                        android:layout_marginRight="20dp"
+                        android:padding="5dp"
+
+                        />
                 <TextView
                     android:id="@+id/summary_limit_tv"
                     android:layout_width="wrap_content"
@@ -68,14 +79,7 @@
                     whatever:customRegexp="^[\\s\\S]{0,500}$"
                     whatever:testErrorString="字数超限500了喔,亲!"
                     />
-                <ImageButton
-                    android:id="@+id/voice_summary_ib"
-                    android:layout_width="30dp"
-                    android:layout_height="30dp"
-                    android:src="@drawable/avatar_icon_voice"
-                    android:layout_gravity="right"
-                    android:layout_marginRight="10dp"
-                    android:visibility="gone"/>
+
                 <View
                     android:layout_width="match_parent"
                     android:layout_height="8dp"
@@ -97,6 +101,17 @@
                         android:text="工作计划"
                         android:paddingLeft="10dp"
                         android:layout_marginTop="8dp"/>
+
+                    <ImageView
+                        android:id="@+id/voice_plan_iv"
+                        android:layout_width="30dp"
+                        android:layout_height="30dp"
+                        android:background="@drawable/btn_yuyin_nor"
+                        android:layout_gravity="right"
+                        android:visibility="visible"
+                        android:layout_marginRight="20dp"
+                        android:padding="5dp"
+                        />
                     <TextView
                         android:id="@+id/plan_limit_tv"
                         android:layout_width="wrap_content"
@@ -140,15 +155,26 @@
                         android:textSize="16sp"
                         android:layout_marginTop="8dp"
                         />
+                    <ImageView
+                        android:id="@+id/voice_experience_iv"
+                        android:layout_width="30dp"
+                        android:layout_height="30dp"
+                        android:background="@drawable/btn_yuyin_nor"
+                        android:layout_gravity="right"
+                        android:visibility="visible"
+                        android:layout_marginRight="10dp"
+                        android:padding="5dp"
+                        android:layout_alignParentRight="true"
+                        />
                     <ImageView
                         android:id="@+id/add_work_daily_sharing_experience_im"
                         android:layout_width="25dp"
                         android:layout_height="30dp"
                         android:src="@drawable/ex_icon_share_nor"
-                        android:layout_alignParentRight="true"
                         android:layout_marginTop="0dp"
                         android:layout_marginRight="10dp"
                         android:visibility="visible"
+                        android:layout_toLeftOf="@+id/voice_experience_iv"
                         />
 
                     <TextView