2015-04-02 50 views
1

试图获得在C#wpf中的光束角度,并在If PropertyChange抛出异常。有没有人有这个项目的例子,如果需要我可以提供更多的信息。我试图让话筒更改属性,而是它抛出一个异常xbox 360 kinect光束角度问题与财产变化

 InitializeComponent(); 
     //Beam Angle Code 
     this.DataContext = this.Rect; 
     this.Loaded += delegate { ListenForBeamChanges(); }; 
    } 

    private KinectAudioSource CreateAudioSource() 
    { 
     var source = KinectSensor.KinectSensors[0].AudioSource; 
     source.NoiseSuppression = true; 
     source.AutomaticGainControlEnabled = true; 
     source.BeamAngleMode = BeamAngleMode.Adaptive; 
     return source; 
    } 

    private KinectAudioSource audioSource; 
    private void ListenForBeamChanges() 
    { 
     KinectSensor.KinectSensors[0].Start(); 
     audioSource = CreateAudioSource(); 
     audioSource.BeamAngleChanged += audioSource_BeamChanged; 
     audioSource.Start(); 
    } 

    public double _beamAngle; 
    public double BeamAngle 
    { 
     get { return _beamAngle; } 
     set 
     { 
      _beamAngle = value; 
      OnPropertyChanged("BeamAngle"); 
     } 
    } 

    void audioSource_BeamChanged(object sender, BeamAngleChangedEventArgs e) 
    { 
     BeamAngle = e.Angle * -1; 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    public void OnPropertyChanged(string propName) 
    { 
     if (PropertyChanged != null) 
      PropertyChanged(this, new PropertyChangedEventArgs(propName)); 
    } 

    } 
} 
+0

你可以添加被抛出什么异常? – nvuono 2015-04-02 15:09:26

+0

它指出属性更改为空 – Ant 2015-04-15 23:32:07

回答

0

看到http://kinectaudioposition.codeplex.com

复制样品使用代码http://channel9.msdn.com/coding4fun/kinect/Kinect-Audio-Positioning

/// <summary> 
/// Event handler to care Window loaded 
/// Construct KinectMicArray and draw contents 
/// </summary> 
private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    kinectMic = new KinectMicArray(); 
    kinectMic.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(kinectMic_PropertyChanged); 
    DrawContents(); 
} 
/// <summary> 
/// Event handler to care KinectMicArray property changed 
/// Showing angles as number for debug 
/// </summary> 
/// <param name="sender"></param> 
/// <param name="e"></param> 
private void kinectMic_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) 
{ 
    KinectMicArray ka = sender as KinectMicArray; 
    this.myLabel.Content = string.Format("Beam = {0:F}; Source = {1:F}; ", ka.BeamAngleProperty, ka.SourceAngleProperty); 
} 
+0

该示例基于较早的Kinect SDK(使用Microsoft.Research.Kinect命名空间),但我目前正在寻求分叉并修复它以使用Kinect SDK 1.8(适用于Kinect v1和Kinect for Xbox 360传感器)。您可以检出的其他代码是来自Kinect SDK的Kinect Explorer WPF示例,请参阅KinectManager.cs和AudioVisualizer.cs – 2015-10-24 13:42:59

+0

我已将该KinectAudioPositioning示例移植到Kinect SDK v1.8 - 请参阅我的文章https://clickicon关于从旧版微软研究院Kinect Beta SDK中移植到端口所需要的更多信息,请参考.wordpress.com/2015/10/24/howto-upgrade-kinect-audio-positioning-code-from-beta-sdk /我已将我的版本上传到http://kinectaudioposition.codeplex.com/SourceControl/list/patches – 2015-10-24 18:06:02