1

私は のNSMenu下に降りてきましたNSStatusItem。私も持っていNSSpeechRecognizerます。が開いてNSMenuいると、音声認識が正しく機能しません。メニューを閉じるまで、常に音を受信して​​いることを示します。メニューが開いているときでも、音を正しく検出する必要があります。

メニューが開いているときでも、音声認識エンジンに音声を検出させるにはどうすればよいですか? 「ファーストレスポンダー」になってメニューよりも優先する必要はありますか?

設定[speechRecognizer setListensInForegroundOnly: NO]してみましたが、それでもうまくいきません。

理解できない場合は、喜んで説明します。

似たような 状況がいくつかありますが、まだ完全には理解できていません。

4

1 に答える 1

2

この問題は、メニューが開いている限り (マウスの追跡などの目的で) モーダル実行ループを実行している可能性が高く、これがNSSpeechRecognizerの正常な機能をブロックしている可能性があります。

これを確認するには、メニューを表示してデバッガーを一時停止します。2 つの実行ループが表示される可能性があります。モーダル ループを実行しているスタックの外側、法線、1 つおよび 1 つ下。

一般に、これはユーザー インタラクションの観点からは奇妙なことです。ポップアップ メニューの要点は、対応するメニュー項目が選択された後に実行されるいくつかのコマンドをユーザーに提供することです。

「これをクリックして音声を認識する」ことが本当に必要な場合は、メニューを使用せずにUIを少しポップアップして音声認識エンジンと対話するボタンをお勧めしますか?

于 2012-11-04T03:00:09.550 に答える