Text to speech service call by function:
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.speech.tts.TextToSpeech.OnUtteranceCompletedListener;
import android.util.Log;
import android.widget.Button;
import android.widget.Toast;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
import android.widget.Toast;
public class SpeakerServices extends Service implements
OnUtteranceCompletedListener {
private static TextToSpeech myTts;
static HashMap<String, String> mHashMap;
static OnUtteranceCompletedListener context;
Intent intent;
public static final String BROADCAST_ACTION = "com.stockQuity.TabFirstActivity.displayevent";
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
intent = new Intent(BROADCAST_ACTION);
myTts = new TextToSpeech(this, ttsInitListener);
System.out.println("start services===========");
context=this;
}
private TextToSpeech.OnInitListener ttsInitListener = new TextToSpeech.OnInitListener() {
public void onInit(int version) {
}
};
public static void speakSMS(String sms,String viewId) {
myTts.setOnUtteranceCompletedListener(context);
mHashMap = new HashMap<String, String>();
mHashMap.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, viewId);
System.out.println("message========" + sms);
myTts.speak(sms, TextToSpeech.QUEUE_ADD, mHashMap);
// myTts.synthesizeToFile(sms, null, "/sdcard/myappsounds/mysms.wav");
}
@Override
public void onStart(Intent intent, int startid) {
System.out.println("onini22222t========");
myTts.setOnUtteranceCompletedListener(this);
}
@Override
public void onDestroy() {
if (myTts != null) {
myTts.stop();
//TabFirstActivity.scaleanimation.cancel();
//com.stockQuity.variable.setStartAnimation(false);
Toast.makeText(getApplicationContext(),
"The speech has been destroyed!", Toast.LENGTH_SHORT)
.show();
}
super.onDestroy();
}
@Override
public void onUtteranceCompleted(String utteranceId) {
if(utteranceId.equals("Tab1View1"))
{
System.out.println("end speech==="+utteranceId);
intent.putExtra("view", "finishTab1View1");
sendBroadcast(intent);
}
else if(utteranceId.equals("Tab1View2"))
{
System.out.println("end speech==="+utteranceId);
intent.putExtra("view", "finishTab1View2");
sendBroadcast(intent);
}
else if(utteranceId.equals("Tab1View3"))
{
System.out.println("end speech==="+utteranceId);
intent.putExtra("view", "finishTab1View3");
sendBroadcast(intent);
}
}
}
--------------------------------------------------------------------------------------------------------------
URL:http://pastebin.com/sw0TvnYi
http://code.google.com/p/mytracks/source/browse/MyTracksTest/src/com/google/android/apps/mytracks/services/StatusAnnouncerTaskTest.java?spec=svn628b9865aff4cf3e4fa68d2ab8bbaa59f9a0e729&r=628b9865aff4cf3e4fa68d2ab8bbaa59f9a0e729
public class TextToSpeechService extends Service implements OnInitListener, OnUtteranceCompletedListener {
private int ringVolume, mediaVolume;
private AudioManager mAudioManager;
private TextToSpeech tts;
@Override
public void onCreate() {
tts = new TextToSpeech(getApplicationContext(), this);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
HashMap<String, String> mHashMap = new HashMap<String, String>();
mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
ringVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
mediaVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
mAudioManager.setStreamVolume(AudioManager.STREAM_RING, ringVolume / 2, AudioManager.FLAG_ALLOW_RINGER_MODES);
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, ringVolume, AudioManager.FLAG_ALLOW_RINGER_MODES);
tts.speak("Incoming call from", TextToSpeech.QUEUE_FLUSH, mHashMap);
mHashMap.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "finished id");
tts.speak(intent.getExtras().getString("incomingNumber"), TextToSpeech.QUEUE_ADD, mHashMap);
return START_STICKY;
}
public void onInit(int status) {
tts.setLanguage(Locale.US);
tts.setOnUtteranceCompletedListener(this);
}
public void onUtteranceCompleted(String uttId) {
if (uttId.equals("finished id")) {
mAudioManager.setStreamVolume(AudioManager.STREAM_RING, ringVolume, AudioManager.FLAG_ALLOW_RINGER_MODES);
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mediaVolume, AudioManager.FLAG_ALLOW_RINGER_MODES);
}
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onDestroy() {
if (tts != null) {
tts.stop();
tts.shutdown();
}
}
}
No comments:
Post a Comment