2016-12-10 2 views
0

Je suis en train de créer une interface pour une utilisation avec Windows Kinect en utilisant C#. J'ai été capable de tout mettre en œuvre jusqu'à présent et le mouvement gestuel fonctionne parfaitement en utilisant le curseur de la main. J'ai ensuite eu la tâche d'implémenter la reconnaissance vocale dans le programme afin que l'utilisateur puisse également donner les commandes vocales du programme en même temps que les gestes. Le problème est dans ma méthode Window_Loaded, j'ai placé un sensor.Start(); et sensorChooser.Start(); dans la méthode, mais seulement l'un d'eux travaillera en fonction de ce qui est déclaré en premier.capteur & capteurChooser ne fonctionnera pas/démarrer ensemble (reconnaissance vocale) - Microsoft Kinect C#

Ma question est comment puis-je résoudre ce problème pour pouvoir exécuter à la fois le capteur et sensorChooser, pour pouvoir utiliser la reconnaissance vocale et les gestes.

Merci pour l'aide, voici la méthode jusqu'à présent.

private void Window_Loaded (expéditeur d'objet, RoutedEventArgs e) {

 if(KinectSensor.KinectSensors.Count > 0) 
     { 
      sensor = KinectSensor.KinectSensors[0]; 
     } 


     this.sensorChooser = new KinectSensorChooser(); 
     this.sensorChooser.KinectChanged += SensorChooserOnKinectChanged; 
     this.sensorChooserUi.KinectSensorChooser = this.sensorChooser; 
     initializeSpeech(); 

     sensor.Start(); 
     sensorChooser.Start(); 



     //string[] lines = { "using System;", "namespace First {", "public class Program {", "public static void Main() {", @"Console.WriteLine(""Hello test!""); } } }" }; 
     //System.IO.File.WriteAllLines(@"C:\Users\John\Documents\University\Interface Programming\CW 2\WpfApplication1\test2.txt", lines); 
     //string code = System.IO.File.ReadAllText(@"C:\Users\John\Documents\University\Interface Programming\CW 2\WpfApplication1\test2.txt"); 
     //runCode(code); 

     string fileDirectory = System.IO.Directory.GetCurrentDirectory() + @"\User Projects"; 
     DirectoryInfo textFileDirectory = new DirectoryInfo(fileDirectory); 
     FileInfo[] Files = textFileDirectory.GetFiles("*.txt"); 
     Thickness m = Margin; 
     m.Left = 0; 
     foreach (FileInfo file in Files) 
     { 
      KinectTileButton btn = new KinectTileButton 
      { 
       Label = file.Name, 
      }; 
      btn.Click += buttonRunCode; 
      btn.VerticalAlignment = VerticalAlignment.Center; 
      btn.HorizontalAlignment = HorizontalAlignment.Left; 
      loadedButtons.Children.Add(btn); 
     }      
    } 

Répondre

0

ont depuis résolu ce problème, je déplacé le:

this.sensorChooser = new KinectSensorChooser(); 
this.sensorChooser.KinectChanged += SensorChooserOnKinectChanged; 
this.sensorChooserUi.KinectSensorChooser = this.sensorChooser; 
initializeSpeech(); 

&

sensorChooser.Start(); 

dans la méthode principale et cela a fonctionné :)