2011-12-12 51 views
3

人们,亲爱的Android编码器,Adob​​e本机扩展 - 语音识别

当前我使用Flash Builder编写了Flex中的android移动应用程序。我努力获得Android平台的语音识别功能,但它似乎很复杂。

我设法编写了一个本机扩展,至少显示要求语音输入的Android样式语音识别。我发现,对于android系统,语音输入对话框表示一个活动,您可以等待活动的响应并覆盖onActivityResult函数。

还有问题。由于我必须在FREContext中调用活动“语音识别”,语音识别活动的响应会丢失。

请参阅附加的java代码。我希望有人能够帮助。

import android.app.Activity; 
import android.content.Intent; 
import android.speech.RecognizerIntent; 


import com.adobe.fre.FREContext; 
import com.adobe.fre.FREFunction; 
import com.adobe.fre.FREObject; 

public class VoiceRecognitionStart extends Activity implements FREFunction { 
      private static final int REQUEST_CODE = 1234; 
      private VoiceRecognitionContext vrc = null; 
      private Activity a; 
      @Override 
      public FREObject call(FREContext context, FREObject[] passedArgs) { 
        vrc = (VoiceRecognitionContext) context; 
        a = VoiceRecognitionStart.this; 



        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
     intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
       RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
     intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Bitte sprechen..."); 
     intent.setClass(VoiceRecognitionStart.this, VoiceRecognitionResult.class); 
     a.startActivityForResult(intent, REQUEST_CODE); 

    return null; 
      } 
      protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
        System.out.println("ON ACTIVITY " + resultCode); 
     if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) 
     { 
      // Populate the wordsList with the String values the recognition engine thought it heard 
      vrc.matches = data.getStringArrayListExtra(
        RecognizerIntent.EXTRA_RESULTS); 
     } 
     System.out.println("vrc.matches " + vrc.matches); 
     super.onActivityResult(requestCode, resultCode, data); 
    } 

} 

回答

2

因为我终于找到了答案,我想与大家分享解决方案。来自Adobe的Immanuel Noel亲自提出了本地扩展。见here: http://blog.immanuelnoel.com/2011/12/07/new-actionscript-native-extension-speech-recognition/

我真的很高兴,但我也很安静,好奇他为什么不' t发布源代码。无论它的工作原理如何!