2016-05-04 6 views
2

ここにいることを喜んでください。SimpleCaptcha Imageの背後にあるテキストを再生するには

私は簡単な質問をします。私はsimplecaptcha1.2.1.jar(http://simplecaptcha.sourceforge.net/)を使ってアプリケーションを開発しています。

SimpleCaptcha APIとAudioCaptchaの使い方は分かっていて、AudioCaptcha ac = new AudioCaptcha.Builder()とCaptcha captcha = new Captcha.Builder(400,100)を使ってサーブレットをカスタマイズする方法を知っています。 )。

私が知りたいのは、シンプルキャプチャの背後にある画像とAudioCaptchaの後ろのオーディオに表示されるテキストを同期させることです。基本的には再生しているものです。

イメージの背後にあるテキストを再生して聞く方法については、どのようなアイデアですか?

私はさらに感謝します。

ここ

敬具私はsimplecaptchaのAPI 1.2を使用しなかった質問をした人のための

マルセル・アギアル

答えて

0

(オーディオとキャプチャ画像とコードを同期させるためにどのように)、私たちが共有することができますので、私の結論に従います私たちの間。

ステップ1_)あなたはDefaultTextProducerを(合格しようとした場合AudioCaptcha元の実装は数字だけを受け入れるように作られた、そう、代わりに使用DefaultTextProducerであり、あなたは、あなたがテストを実行することができますNumberAnswerProducer

TextProducer tp = new NumbersAnswerProducer(4,true); 

new AudioCaptcha.Builder() 
.addVoice() 
.addAnswer(tp) 
.build()); 

を使用する必要があります)AudioCaptchaビルダーに失敗します。キャプチャとAudioCaptcha

の両方に同じTextProducerを共有


ステップ2_が)私は "()。addAnswer(TP)をAudioCaptcha.Builder" についての詳細を理解するためにSimpleCaptchaからGITリポジトリからプロジェクトをクローン化し、 Captcha.Builder(400,100).addText(tp)

これを試すと、TextProducerの同じインスタンスを共有しても表示されます。tp = new NumbersAnswerProducer(4、true);両方のために、あなたはいつも(私は常に信頼しています)、イメージとオーディオの背後にある別のコードを得るでしょう。 なぜですか?

.addAnswer(tp)と.addText(tp)の実装の後で、コードはTextProducerの同じインスタンスであっても.getText()という名前のメソッドを呼び出しているためです。 、

public String getText() { 
String capText = ""; 
for (int i = 0; i < _length; i++) { 
capText += _srcChars[RAND.nextInt(_srcChars.length)]; 
} 
return capText; 
} 

だから、再び、でもTextProducerの同じインスタンスを使用して、あなたは別のコードにあなたが.addAnswer(TP)と.addText(TP)を呼び出すたびになります。そして、これのgetTextは彼の後ろのランダムなコードを持っています彼らの背後にはgetText()が呼び出されるからです。

最後に、解決する方法を見つけたところでは、CaptchaとAudioCaptchaの両方に同じ値を持たせるために、TextProducerの背後にあるgetText()の独自の実装を作成する必要がありました。

よろしくお願いいたします