मैं एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं जिसमें मैं भाषण रूपांतरण के लिए पाठ का उपयोग कर रहा हूं। जब मैं अपना आवेदन खोलता हूं तो भाषण रूपांतरण में पाठ चलाने के लिए मुझे क्या चाहिए। इसके पूरा होने के बाद मैं कुछ काम करना चाहता हूं। मेरा कोडटीटीएस (कॉलबैक) एंड्रॉइड के पूरा होने का पता लगाने में असमर्थ।
public class Mainactivity extends Activity implements OnInitListener, OnUtteranceCompletedListener{
private static int REQ_CODE = 1;
private TextToSpeech tts = null;
private boolean ttsIsInit = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startTextToSpeech();
}
private void startTextToSpeech() {
Intent intent = new Intent(Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, REQ_CODE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQ_CODE) {
if (resultCode == Engine.CHECK_VOICE_DATA_PASS) {
tts = new TextToSpeech(this, this);
}
else {
Intent installVoice = new Intent(Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installVoice);
}
}
}
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
ttsIsInit = true;
int result = tts.setOnUtteranceCompletedListener(this);
if (tts.isLanguageAvailable(Locale.ENGLISH) >= 0)
tts.setLanguage(Locale.ENGLISH);
tts.setPitch(5.0f);
tts.setSpeechRate(1.0f);
HashMap<String, String> myHashAlarm = new HashMap<String, String>();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "SOME MESSAGE");
tts.speak("hi how are you?", TextToSpeech.QUEUE_FLUSH, myHashAlarm);
}
}
@Override
public void onDestroy() {
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
@Override
public void onUtteranceCompleted(String uttId) {
Toast.makeText(Mainactivity.this,"done", Toast.LENGTH_LONG).show();
if (uttId.equalsIgnoreCase("done")) {
Toast.makeText(Mainactivity.this,"inside done", Toast.LENGTH_LONG).show();
}
}
}
जब मैं अपना आवेदन टेक्स्ट भाषण में ठीक काम करता हूं। लेकिन यह पता लगाने के लिए कि पाठ को भाषण पूरा किया गया है या नहीं। नि: शुल्क सहायता ..... धन्यवाद .....
हाय डेविड मैं तुम्हें समाधान की कोशिश की लेकिन यह onUtteranceCompleted इसके लिए setOnUtteranceProgressListener.And के लिए त्रुटि मुझे देता है बिना किसी त्रुटि के निष्पादित करता है लेकिन अधिसूचना में संदेश नहीं दे रहा है इसलिए इस समस्या को हल करने का कोई तरीका है। चाहे मैं कुछ भी गलत कर रहा हूं। नि: शुल्क सहायता ... – nilkash
आप श्रोता सेट करने के लिए 'int परिणाम = tts.setOnUtteranceCompletedListener (थाई) कहते हैं। 'परिणाम' चर के मान की जांच करें। सफलता (0) या त्रुटि (-1) वापस आना चाहिए। साथ ही, यह देखने के लिए कि क्या यह वास्तव में वहां जाता है, पर कुछ लॉगिंग 'ऑनऑटरेंस कॉम्प्लेटेड()' में जोड़ें। किसी भी अन्य अजीब त्रुटियों के लिए अपने logcat भी जांचें। –
धन्यवाद डेविड धन्यवाद के लिए धन्यवाद। यह ठीक काम कर रहा है। मैं टोस्ट और इसके कामकाजी जुर्माना के बजाय लॉगिंग का उपयोग करता हूं। धन्यवाद... – nilkash