Вызов активности TextToSpeech без отображения пользовательского интерфейса - PullRequest
2 голосов
/ 23 января 2011

Каков рекомендуемый способ вызова TextToSpeech без какого-либо изменения пользовательского интерфейса?Все приведенные примеры привязаны к Activity, и поведение по умолчанию для активности - отображать свой собственный пользовательский интерфейс.

Я пытаюсь вызвать TextToSpeechActivity через мою основную деятельность через Intent.Я не хочу, чтобы пользовательский интерфейс вообще менялся.Я хочу, чтобы TextToSpeech звучал без изменений в пользовательском интерфейсе.Вот что у меня есть.

 public class MyActivity extends Activity {

    public void onClick(View v) {
       Intent intent = new Intent(this, TextToSpeechActivity.class);
       startActivity(intent);
    }

    public void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
    }
}

Каждый раз, когда я нажимаю, основной интерфейс заменяется на интерфейс для действия TextToSpeech.И нет, я не хочу, чтобы основной Activity реализовывал TextToSpeech.OnInitListener.В основном уже достаточно кода.Уже достаточно грязно.

1 Ответ

2 голосов
/ 23 января 2011

Вам не нужно начинать новое занятие.Проблема TTS в том, что вам нужно выполнить инициализацию, прежде чем использовать ее.И делать это, например, в пределах onClick() не работает вообще.Я реализовал это в Zwitscher: https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/OneTweetActivity.java#L317 speak() вызывается из кнопки пользовательского интерфейса, а необходимая инициализация вызывается изнутри onCreate(): https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/OneTweetActivity.java#L62 И не забудьтевыключите систему TTS, если она больше не нужна: https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/OneTweetActivity.java#L394

HTH (и дайте мне знать, если есть лучшее решение)

...