Я разрабатываю приложение с SpeechRecognizer
. Я буду использовать его в разных действиях для разных целей, и он немного грязный, добавляя одинаковый код все время к разным классам. Поэтому я переместил свой пользовательский RecognitionListener
в новый класс. Таким образом, я просто инициализирую его, когда хочу от своей деятельности. Но я не могу найти способ получить результат слушателя (в этом случае ArrayList
возможных значений для распознаваемой речи) в моей текущей деятельности, чтобы использовать его.Получить приемник onResults() из другого вида деятельности
Я попытался реализовать его через интерфейс, но я думаю, что я сделал это неправильно. Мой Слушатель код заключается в следующем:
public class SpeechRecognitionListener implements RecognitionListener
{
private final String TAG = "SpeechRecognitionListener";
private Intent mSpeechRecognizerIntent;
private SpeechRecognizer mSpeechRecognizer;
public SpeechRecognitionListener(Intent speechRecognizerIntent, SpeechRecognizer speechRecognizer) {
mSpeechRecognizerIntent = speechRecognizerIntent;
mSpeechRecognizer = speechRecognizer;
}
@Override
public void onBeginningOfSpeech()
{
//Log.d(TAG, "onBeginingOfSpeech");
}
@Override
public void onBufferReceived(byte[] buffer)
{
}
@Override
public void onEndOfSpeech()
{
//Log.d(TAG, "onEndOfSpeech");
}
@Override
public void onError(int error)
{
mSpeechRecognizer.startListening(mSpeechRecognizerIntent);
//Log.d(TAG, "error = " + error);
}
@Override
public void onEvent(int eventType, Bundle params)
{
}
@Override
public void onPartialResults(Bundle partialResults)
{
}
@Override
public void onReadyForSpeech(Bundle params)
{
Log.d(TAG, "onReadyForSpeech"); //$NON-NLS-1$
}
@Override
public void onResults(Bundle results)
{
//I want to recieve this array in my main activity
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
}
@Override
public void onRmsChanged(float rmsdB)
{
}
}
Я просто хочу, чтобы получить onResult()
массив в моей текущей деятельности для работы с ним. Надеюсь, что кто-то мне поможет! Спасибо огромное!
Вы слишком быстро :) Это правильный ответ –
Im согласен с @DavidSeroussi! Спасибо огромное ! Im действительно noob с интерфейсами: P. Кстати! Если вы знаете что-то о SpeechRecognition, вы можете проверить мой последний пост, я буду очень благодарен, если кто-нибудь поможет мне в этом! –
@FranciscoDurdinGarcia Я не знаком с распознаванием речи, но в реализации кодирования, если есть какие-либо вопросы, я был бы рад помочь – Pooya