2016-09-27 7 views
-3
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_image_preview); 
     touch_color = (TextView) findViewById(R.id.touch_color); 


     picTaken = (ImageView) findViewById(R.id.picTaken); 

     // bitmap = fixRotation(MainActivity.IMG_FILE); 
     //picTaken.setImageBitmap(bitmap); 

     String toSpeak = touch_color.getText().toString(); 
     t1.speak(toSpeak, TextToSpeech.QUEUE_ADD, null); 


     t1 = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() { 
      @Override 
      public void onInit(int status) { 
       if (status != TextToSpeech.ERROR) { 
        t1.setLanguage(Locale.US); 
        t1.setLanguage(Locale.UK); 

       } 

      } 
     }); 

    } 

    public void onPause() { 
     if (t1 != null) { 
      t1.stop(); 
      t1.shutdown(); 
     } 
     super.onPause(); 
    } 

Run c 

私は実際に欲しいと思っているテキストを使ってアンドロイドのボタンをクリックせずにテキストフィールドを読みたいと思っています。誰でも助けることができるテキストフィールドで?このコードを使用していますが、このコード行を置き換えるエラーが発生します。 "t1.speak(toSpeak、TextToSpeech.QUEUE_FLUSH、null);"助けてください。アンドロイドで新しい活動を開始するとテキストを音声に変換する

+1

質問をする方法をここを見て:http://stackoverflow.com/help/how-to-ask – 476rick

+0

こちらをご覧http://www.androidhive.info/2012/01/android-text-を –

+0

... 'ランc '?あれは何でしょう?! –

答えて

0

これはlinkを使用できますが、音声テキストに関する有用な情報があります。

private void promptSpeechInput() { 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); 
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, 
      getString(R.string.speech_prompt)); 
    try { 
     startActivityForResult(intent, REQ_CODE_SPEECH_INPUT); 
    } catch (ActivityNotFoundException a) { 
     Toast.makeText(getApplicationContext(), 
       getString(R.string.speech_not_supported), 
       Toast.LENGTH_SHORT).show(); 
    } 
} 
0

以下のコードスニペットを使用して、音声合成ツールを実装することができます。

public class MainActivity extends Activity { 
TextToSpeech t1; 
EditText ed1;  
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    ed1=(EditText)findViewById(R.id.editText);  
    t1=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() { 
    @Override 
    public void onInit(int status) { 
     if(status != TextToSpeech.ERROR) { 
      t1.setLanguage(Locale.UK); 
     } 
    } 
    }); 


    String toSpeak = ed1.getText().toString(); 
    Toast.makeText(getApplicationContext(), toSpeak,Toast.LENGTH_SHORT).show(); 
    t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null); 

} 

public void onPause(){ 
    if(t1 !=null){ 
    t1.stop(); 
    t1.shutdown(); 
    } 
    super.onPause(); 
} 
} 
+0

うまくいかない –

+0

あなたはどんな問題に直面していますか? – Jaydroid

+0

t1.speak(toSpeak、TextToSpeech.QUEUE_FLUSH、null); 私はキューを持っていないし、私のエントリが変更されていないので、私はこの行を変更する必要があります –

関連する問題