Problem mit Text Sprechen lassen. wer kann Helfen?

  • hi
    ich lass ein Namen eingeben und in einer neuen Activity wird der jenige begrüßt mit sein Namen.
    nun wollte ich den namen bzw die begrüßung gesprochen haben.
    text übergabe geht aber wird nix gesprochen.
    vielleicht kann ja mal jemand drüber kucken.


    <Java>
    package de.example.test;


    import java.util.Locale;


    import android.app.Activity;
    import android.os.Bundle;
    import android.speech.tts.TextToSpeech;
    import android.speech.tts.TextToSpeech.OnInitListener;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.TextView;


    public class frageActivity extends Activity
    implements OnClickListener, OnInitListener {


    private TextToSpeech tts;
    TextView textView;
    String tmp;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.frage_main);
    tts = new TextToSpeech (this, this);
    }
    //Text Ausgabe des Namen
    public void onClick (View v, String TextView){
    // sollte eigentlich den namen sprechen aber will nicht.
    tts.speak(TextView, TextToSpeech.QUEUE_FLUSH, null);
    }
    public void onInit (int status){
    // text eingabe übergeben
    textView = (TextView) findViewById(R.id.textView4);
    Bundle bundle = getIntent().getExtras();
    tmp = bundle.getString("key1");
    textView.setText(tmp);
    //
    tts.setLanguage(Locale.GERMAN);
    tts.setSpeechRate((float) 1.5);
    }
    //Menu
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    menu.add(Menu.NONE, 0, 0, "Exit");
    menu.add(Menu.NONE, 1, 1, "Settings");
    //menu.add(Menu.NONE, 2, 2, "Other");
    return true;
    }


    public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()) {
    case 0:
    finish();// Seite zurück
    System.exit(0);//Schleife dieser activity Beenden
    }
    return false;
    }
    public void onClick(View v) {
    // TODO Auto-generated method stub
    }
    }
    </Java>

  • Hallo,



    Zitat

    public void onClick (View v, String TextView){
    // sollte eigentlich den namen sprechen aber will nicht.
    tts.speak(TextView, TextToSpeech.QUEUE_FLUSH, null);
    }


    versuch mal:

    Zitat

    public void onClick (View v, String TextView){
    // sollte eigentlich den namen sprechen aber will nicht.
    tts.speak(textView.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);


    }

  • Ich bin mir Ziemlich sicher das, das Problem hier ist:


    Zitat

    public void onClick (View v, String TextView){
    // sollte eigentlich den namen sprechen aber will nicht.
    tts.speak(TextView, TextToSpeech.QUEUE_FLUSH, null);
    }

    versuch mal igw sowas:

    Zitat


    public void onClick (View v, String TextView){


    TextView = tmp;
    tts.speak(TextView, TextToSpeech.QUEUE_FLUSH, null);
    }

  • Nabend,


    wie block_ schon geschrieben hat, gibt es nirgends einen Aufrufer der onClick Methode..


    Hier mal ein kleines Bsp.:



    package de.androidnewcomer.deinestimme;


    import android.app.Activity;
    import android.os.Bundle;
    import android.speech.tts.TextToSpeech;
    import android.speech.tts.TextToSpeech.OnInitListener;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;


    public class ErsteActivity extends Activity implements OnInitListener, OnClickListener {
    private TextToSpeech tts;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    tts = new TextToSpeech(this, this);
    }


    public void onInit(int status){
    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(this);
    }


    public void onClick(View view){
    EditText editText = (EditText) findViewById(R.id.editText1);
    tts.speak(editText.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
    }
    }


    Wie man sieht, weist man dem button einen eventListener hinzu, der dafür sorgt, dass die onClick aufgerufen wird. In der onClick wird dann mittels tts.speak(editText.getText().toString(), TextToSpeech.QUEUE_FLUSH, null); der eingegebene Text aus dem Textfeld an die Methode speak der TextToSpeech Objektes übergeben.



    Grüße


    PS: Wieso bricht der Code hier im CodeTag nicht mehr um?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!