WPF中MediaElement的MediaOpened事件不触发

问题描述:今天做Jaguar。用的WPF框架,其中每个Page中有一个MediaElement,总是跳转不到第二个Page。但是在调试的时候加入断点,就可以。

问题分析
用断点查找,发现第二个Page的MediaElement的MediaOpened不触发导致的问题。
MediaElement的.xaml是这样定义的:
<MediaElement Name="mediaElement" Margin="0" MediaOpened="mediaElement_MediaOpened" MediaEnded="mediaElement_MediaEnded" LoadedBehavior="Manual" UnloadedBehavior="Manual" />
MediaElement的.xaml.cs是这样定义的:
mediaElement.Source = new Uri(source);
mediaElement.Stop();

把.xaml.cs改为:
mediaElement.pause();
无用。
把.xaml.cs改为:
mediaElement.play();
video倒是在后台播了,但是还是不触发MediaOpened。

随后查找资料:
MediaOpened: 当媒体流已被验证和打开且已读取文件头时发生。如果 AutoPlay 属性设置为 false,则当发生 MediaOpened 事件时,将暂停媒体。另外要注意: Position 属性在发生 MediaOpened 事件之前为 null。虽然 Position 是可设置的。但在引发 MediaOpened 事件之前,不应尝试设置 Position。包括不应在 XAML 中设置初始 Position 值。
把所有Opened之前的Position改掉,无用。
我彻底被打败了,只好跳过MediaOpened事件,直接把MediaElement加上去。

Kinect for developer

最近公司做Jaguar,用Kinect做互动。因为Developer版本的Kinect要贵,而且中国不销售,定85个来不及。所以每次调试VS都如下输出

The Kinect sensor plugged into your computer is for use on the Xbox 360.
You may continue using your Xbox 360 Kinect sensor on your computer for development purposes.
Microsoft does not guarantee full compatibility for Kinect for Windows applications and the Xbox 360 Kinect Sensor.

悲剧啊

OpenNI的安装问题

问题描述:Kinect买了好久了,今天终于空下来,有机会来研究下。按照教程安装OpenNI、Sensor、NITE后,然后启动as3-server,报openNI.dll丢失的错误。

问题分析:查看C:\Program Files\OpenNI\bin64;C:\Program Files (x86)\OpenNI\Bin目录,有openNI.dll文件。

问题解决:系统环境变量从
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Thunder Network\KanKan\Codecs;C:\Program Files (x86)\ICBCEbankTools\Gemplus\GemSafe Libraries\BIN\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\OpenNI\bin64;C:\Program Files (x86)\OpenNI\bin;C:\Program Files (x86)\PrimeSense\NITE\bin
改为
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Thunder Network\KanKan\Codecs;C:\Program Files (x86)\ICBCEbankTools\Gemplus\GemSafe Libraries\BIN\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\OpenNI\bin64;C:\Program Files (x86)\OpenNI\Bin;C:\Program Files (x86)\PrimeSense\NITE\Bin
一切ok了!

Kinect hardware

Electric motor

3 sections of mainboard

Cooling fan

Two cameras

IR projector

4 microphones

Four different kinds of screws

15 chips including:

Wolfson Stereo ADC with microphone preamp

Fairchild N-Channel PowerTrench MOSFET

NEC USB 2.0 hub controller

Unidentified SAP package chip

Camera interface controller

Marvell SoC camera interface controller

Hynix 512Mb DDR2 SDRAM

Analog Devices CMOS Rail-to-Rail Output Operational Amplifier

TI 8-bit, 8-channel Sampling A/D converter

Allegro low voltage stepper and single/dual motor driver

ST 8Mbit NV flash memory

PrimeSense image sensor processor

TI USB audio controller

Kionix accelerometer