私はUWPを開発中で、SpeechRecognizerを使いたいと思います。私がアプリケーションを実行すると、最初の試行は正しいですが、次に試行するとSystem.InvalidOperationExceptionがスローされます。UWP SpeechRecognizer例外がスローされました:オブジェクトの現在の状態のため、操作が無効です
SpeechRecognitionResult speechRecognitionResult = await speechRecognizer.RecognizeAsync();
エラーメッセージが「操作が原因オブジェクトの現在の状態に有効ではありません。」
です
そして別の状況私が話すように、ボタンをクリックすると、機能RecognizeAsync()
が呼び出されていないようだと、私はすぐに、空白のコンテンツにMessageDialogを取得し、プログラムの戻り値が1(0x1の)であるということです。このように例外は発生しませんが、ボタンをすばやくクリックすると、上記の例外がスローされます。
私は多くのページをオンラインで検索しましたが、誰もこの問題を解決できませんでした。 どんな助けでも大歓迎です。ありがとう。
は、ここに私の完全なコード
public sealed partial class VoiceMainPage : Page
{
public VoiceMainPage()
{
InitializeComponent();
}
private async void OnListenAsync(object sender, RoutedEventArgs e)
{
// Create an instance of SpeechRecognizer.
var speechRecognizer = new SpeechRecognizer();
// Compile the dictation grammar by default.
await speechRecognizer.CompileConstraintsAsync();
// Start recognition.
SpeechRecognitionResult speechRecognitionResult = await speechRecognizer.RecognizeAsync();
var messageDialog = new MessageDialog(speechRecognitionResult.Text, "Text spoken");
await messageDialog.ShowAsync();
}
}
スレッドで実行しようとしましたか? – Ouarzy
RunAsync()関数を使用することを意味しますか?私はMSDNに目を向けると、それを使用しようとしましたが、それでも動作しません。 –
はい、Thread.Run()か何か。 UWP APIはバックグラウンドスレッドから実行する必要があることはよく知っていますが、SpeechRecognizerはまだ使用していません。 – Ouarzy