私の Android アプリケーションでは、TTS と音声認識を使用しています。使用可能なすべてのコールバックを使用して状況を把握しているにもかかわらず、対処できない状況が発生します。例:
1) TTS は初期化の成功を報告しますが、発言に失敗します (一部のカスタム TTS エンジンの既知の問題 (名前が言及されていない))。
2) 最初の接続が成功した後、ネットワーク アクセスが失われるため、ネットワーク エラーが返されるまでに膨大な遅延が発生する可能性があります。
私があなたを退屈させない他の状況があります。
thisやthisなどの時間監視スレッドを読んで消化したので、XとYの間の時間を正確に決定する方法を理解していますが、これは私が求めている監視方法であり、設定された制限に達したときに反応できます.
疑似コードで申し訳ありませんが、手を挙げてください。これをどこから始めればよいかわかりません..
public boolean methodSuccess = false;
public void troublesomeMethod() {
if(// everything completed and I got a usual result) {
methodSuccess = true;
}
public boolean timeMonitor(int maxDuration) {
// use System.currentTimeMillis() here as start value
// monitor time elapsed here in loop
// monitor methodSuccess in loop
// return false if methodSuccess is set to true whilst in loop
// break if maxDuration reached and return true
}
繰り返しますが、上記のコードを許してください、私はこれを達成する方法を単に考えることはできません...
さらに、上記を次のように開始した場合:
boolean monitorThis = timeMonitor(5000); // let me know when 5 seconds have passed
startTroublesomeMethod(); // the one I want to monitor
その場合、startTroublesomeMethod() が実際に開始される前に、ブール値の応答が返されるのを「待つ」必要があるとしたら、それは無意味です。それとも、私が監視を開始する前に、面倒なメソッドが始まっていた...
if(monitorThis) {
// react to lagging method by destroying TTS or Listener Object
} else {
// the troublesomeMethod behaved normally - do nothing
}
混乱の中で、私が達成しようとしていることをなんとか表現できたことを願っています。
よろしくお願いします。