Android TTS API'yi "söylenişimi" okumaya çalışıyorum ve sonra onUtteranceCompleted() dinleyicisini başarısız olarak çağırıyorum. TTS nesneyi kaydettim ve BAŞARILIYORUM, bu yüzden benim hayatımın neden çağrılmamasının nedenini anlayamıyorum.Android TTS onUtteranceCompleted callback çağrılmadı
Yardım aramayı denedim, ancak başkalarının da bununla ilgili zorlukları var gibi görünüyor. Basit bir şey mi eksik?
Sunduğunuz her türlü yardım için teşekkür ederiz.
package com.test.mytts;
import java.util.HashMap;
import android.app.Activity;
import android.media.AudioManager;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.speech.tts.TextToSpeech.OnUtteranceCompletedListener;
import android.widget.TextView;
import android.widget.Toast;
public class MyTTS extends Activity implements OnInitListener, OnUtteranceCompletedListener
{
TextView tv;
private TextToSpeech _tts;
@Override
public void onCreate(Bundle savedInstanceState)
{
tv = new TextView(this);
tv.setText("MyTTS: ");
super.onCreate(savedInstanceState);
setContentView(tv);
_tts = new TextToSpeech(this, this);
}
@Override
public void onInit(int status)
{
HashMap<String, String> myHashAlarm = new HashMap<String, String>();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_NOTIFICATION));
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "test");
if (status == TextToSpeech.SUCCESS)
{
Toast.makeText(this, "Trying to speak...", Toast.LENGTH_SHORT).show();
int result = _tts.setOnUtteranceCompletedListener(this);
tv.append(String.valueOf(result));
_tts.setSpeechRate((float) .5);
_tts.speak("Testing one, two, three", TextToSpeech.QUEUE_ADD, myHashAlarm);
}
else
Toast.makeText(this, "Failed to initialize TTS.", Toast.LENGTH_SHORT).show();
}
@Override
public void onUtteranceCompleted(String utteranceId)
{
Toast.makeText(this, "onUtteranceCompleted", Toast.LENGTH_SHORT).show();
}
@Override
public void onDestroy()
{
super.onDestroy();
_tts.shutdown();
}
}
Sahip olduğun şeylerle ilgili yanlış bir şey göremiyorum, ama neler olup bittiğini takip etmek için tostlardan daha mantıklı ifadeler kullanman daha iyi olacaktır. Sonra siparişi kayıt defterinde inceleyebilirsiniz. –
Bunun size yardımcı olacağını düşündüğümüz: [http://stackoverflow.com/questions/4658376/how-to-know-when-tts-is-finished][1] [1]: http: //stackoverflow.com/questions/4658376/how-to-know-when-tts-is-finished – uriellabs