1

TTS モジュールを作成しました。スタンドアロンで完全に動作していましたが、プロジェクトのクラスとして実装しようとすると、誤動作し、null ポインター例外がスローされます。

私が達成しようとしていること:

1) /res/raw フォルダーからテキスト ファイルを読み取ります。2) テキスト ファイルを TTS 経由で音声に変換します。文字列 s は、BufferReader クラスを介してファイル全体をキャプチャしました。

私が TTS に使用したコードは -

private TextToSpeech tts;
tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

エラーは tts.speak..... 行にあります。コード全体に log.d を追加して、この行を見つけました。上記の tts.speak コードに登録された log.d はありません。

問題のデバッグにご協力ください。

前もって感謝します。

4

1 に答える 1

1

変数の宣言を示しました。

private TextToSpeech tts;

...そしてあなたは変数を使って示しました:

tts.speak(s, TextToSpeech.QUEUE_FLUSH, null);

...しかし、変数を初期化したことはありますか?値を割り当てない場合、常にデフォルト値の。になりますnullこのチュートリアルから判断すると、次のようなものが必要です(コードがにあると仮定していますActivity):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    tts = new TextToSpeech(this, this);
    ...
}
于 2012-08-05T19:08:12.090 に答える