私は現在、リアルタイム通信を使用して、C# WPF のソケットを使用してクライアントからサーバーにデータを転送するデスクトップ ソフトウェア ソリューションを開発しています。クライアントとサーバーは同じアプリケーションで定義されますが、ロールはユーザー タイプに基づいて決定されます (生徒はクライアントであり、教師はサーバーとして機能します)。
Affdex 3.0 SDK を使用して生徒の表情データをキャプチャし、サーバーに送信しています。
私の問題は、CameraDetector が初めて開始され、最初の顔が追跡されると、すべてが正常に機能することですが、顔が失われ、再度追跡するために画像に再入力されるとすぐに、新しく検出された顔がコレクションに追加されます。最初に再挿入される代わりに、key not found exception
. 顔の有効な顔が見つかるまでコレクションをループすることを考えましたが、それは理想的な解決策ではありません。
public void onImageResults(Dictionary<int, Affdex.Face> faces, Affdex.Frame image)
{
Affdex.Face face;
if (faces.Count() >= 1)
{
try
{
face = faces[0];
UpdateExpressionsDials(face);
}
catch(Exception e)
{
Console.WriteLine("face failed " + e.Message.ToString());
}
}
}
これは で失敗しますface failed The given key was not present in the dictionary.
A first chance exception of type 'System.Collections.Generic.KeyNotFoundException' occurred in mscorlib.dll
。
これを行うより良い方法はありますか?Listener の周りにラッパーを作成し、面がある場合は常に最初にあることを確認するのが賢明でしょうか?
これは私の最初の質問なので、質問から何かを省略した場合はお知らせください。ありがとう