2015-04-02 47 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