Primary Navigation
Sign in to subscribe
pdc2008
Developing for Microsoft Surface
/* Video player
-------------------------------------------------- */
html.embedded
overflow: hidden;
html.embedded body.hasVideo
height: 100%;
width: 100%;
.playerContainer
clear: both;
font-family: segoe-ui_normal, 'Segoe UI', Segoe, 'Segoe WP', Tahoma, Verdana, Arial, sans-serif;
height: 100%;
position: relative;
width: 100%;
.playerContainer a.playButton
background-color: #000;
background-position: center center;
background-repeat: no-repeat;
background-size: contain;
display: block;
height: 100%;
position: relative;
width: 100%;
.playerContainer a.playButton:before
content: "";
display: block;
padding-top: 56.25%;
.playerContainer a.playButton:active,
.playerContainer a.playButton:hover
text-decoration: none;
.playerContainer a.playButton .caption
background-color: rgba(0, 0, 0, .75);
bottom: 0;
color: #fff;
display: block;
font-size: 1.1rem;
padding: 2% 4%;
position: absolute;
body[dir=ltr] .playerContainer a.playButton .caption
left: 0;
body[dir=rtl] .playerContainer a.playButton .caption
right: 0;
.playerContainer > .playButton > .play
display: block;
font-size: 0;
overflow: hidden;
padding-top: 56.25%;
position: absolute;
text-indent: -9999px;
top: 0;
width: 100% !important;
z-index: 9;
.playerContainer > .playButton > .play:before
background-color: rgba(0, 0, 0, .5);
border: 2px solid rgba(0, 0, 0, .2);
border-radius: 8px;
bottom: 0;
color: transparent;
content: "";
cursor: pointer;
display: inline-block;
height: 16%;
left: 0;
margin: auto;
position: absolute;
right: 0;
text-indent: -9999px;
top: 0;
transition: background-color 200ms ease 0s;
width: 9%;
z-index: 10;
.playerContainer > .playButton:focus > .play:before
outline: 2px solid #004e8e;
.playerContainer > .playButton > .play:after
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABjCAYAAABkDAWWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAv5JREFUeNrsnUFHRFEUx1+j79KqVUTMZ6hVHyNaRbSKaBURwxCpbZtapZZFm2ZTq2jVKiIihsh0nrlHw9Q0b+bdc+655//jr1TE/c315v3f3Htner1eQdxRNilXBRClEb4uUC4p15QmhkVeANMMEs4o8xgeeQHMMuWeckyZwzDFYyZcA3oj/uaLckTZpjxjyOQFMJ+UNmWH8oKhkxfAdCkHlF3KG4ZQXgDzTtmn7IXvgbAA5i3MhhblA0MqL4B5DRfqdrheAGEBzHO4UB+Gd1BAWADzFGbECYZZRwDzEEScYrh1BDDnlK0gBPxTRcQA9YbyDBgE9YayAMZ9vaEtgHFbb6QigHFXb6QmgHFTb6QqgMm+3khdAJNtvWFFAJNdvWFNAJNNvWFVAGO+3mgYfwGZrzesz4BBTNYbOQlgTNUbOQpgTNQbOQtgkq43PAhgkqw3PAlgkqo3PApgkqg3PAtgVOsNCPhBpd6AgGFE640GxnsI0XoDM2A00esNCBiPaPUGBFSj9noDAiajtnoDAqZj6noDAuph4noDAuqlcr0BAXEYu96AgLj8W29AgAydol9vXECALreUDcoN/wBdkCxLRX83mnJroEXMAH1amAE6lH3SGmV9FmOhcsNW3ieUvVIBAXIDz5VFd/AXECBzH1C+/fy1K4IA5TthCKiXyl0QBNR7ca3chkLAdEz9PAACJqO2J2IQUI3anwlDwHhE+1QEBIwm+ueCIOBvTsIr/jHmP4GAYfDZUMXaYJWyUgiuO8YMUF4f4FlAEitkPApIao2YJwFJrpL0ICDpdcI5CzCxUj5HAab2ishJgMndUnIRIFIbQIBybYAqQrk2wAzIcNdEKwKy3Tc0dQHZ75ybqgA3e0enJsDd7umpCHB7foC2APcnaGgJwBkyigLM1gbWBeAcMaUqIpvawNoMwFmSSgJwmqqSAJwnrCQAJ2orCcCZ8koC3NYG2gLc1wZaAlAbKApAbaAkALWBkoByJ6fNYmBHJyAjoBMG/gpDIsu3AAMA8Y+rQ0L9JYAAAAAASUVORK5CYII=');
.playerContainer > .playButton > .play:after
background-position: right center;
background-repeat: no-repeat;
bottom: 0;
content: "";
display: inline-block;
left: 1.3%;
position: absolute;
right: 0;
top: 0;
width: 4.5%;
height: 16.215%;
margin: auto;
z-index: 11;
.playerContainer.noVideo > .playButton > .play:before,
.playerContainer.noVideo > .playButton > .play:after
display: none;
.playerContainer > .playButton > .play:hover:before
background-color: rgba(0, 0, 0, 0.9);
color: transparent;
.playerContainer .progress.circles
background-color: transparent;
border: none;
.playerContainer .videoContainer
background-color: #000;
display: none;
height: 100%;
width: 100%;
.playerContainer video.Player
height: 100%;
width: 100%;
.playerContainer .videoContainer.fullscreen
height: 100%;
left: 0;
overflow: hidden;
position: fixed;
top: 0;
width: 100%;
z-index: 9999;
.playerContainer ul.mediaformat,
.playerContainer ul.mediacaptions
display: none;
.playerContainer .videoContainer .error
background-color: #464646;
color: #fff;
padding: 40px;
vertical-align: middle;
.playerContainer .videoContainer .error a,
.playerContainer .videoContainer .error a:hover,
.playerContainer .videoContainer .error a:focus
color: #ffb20b;
.playerContainer .error h3
font-size: 120%;
margin-top: 1.13rem;
.playerContainer .iframeContainer
background-color: #ddd;
clear: both;
padding-bottom: 56.25%;
position: relative;
.playerContainer .iframeContainer:before
background-image: url('/assets/images/ch9Icons.png?v=6');
background-position: -138px -251px;
content: '';
display: block;
height: 35px;
left: calc(50% - 18px);
opacity: .7;
position: absolute;
top: calc(50% - 18px);
width: 35px;
-webkit-animation: spin 1.5s linear infinite;
-moz-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite;
@-moz-keyframes spin 100% -moz-transform: rotate(360deg);
@-webkit-keyframes spin 100% -webkit-transform: rotate(360deg);
@keyframes spin 100% -webkit-transform: rotate(360deg); transform:rotate(360deg);
.playerContainer .iframeContainer .playerIframe
height: 100%;
position: absolute;
top: 0;
width: 100%;
.playerContainer .noVideo_region
background-color: #ddd;
padding: 65px 40px;
body
margin: 0;
padding: 0;
Sign in to queue
Description
This session introduces the newly available Microsoft Surface SDK. Hear about the unique attributes of Microsoft Surface computing, dive into vision-based object recognition and core controls like ScatterView, and learn how the Surface SDK aligns with
the multi-touch developer roadmap for Windows 7 and WPF. Additionally, learn how you can become a part of the expanding partner ecosystem for Microsoft Surface and leverage your existing investments in WPF and Visual Studio to build engaging end user applications.
Attendees of this session will receive access to the Microsoft Surface SDK.
- Robert LevyRobert Levy has led the design development of the APIs and controls in the Microsoft Surface SDK. He has been on the Surface team for over two years. His previous projects at Microsoft include the SDKs for Windows Mobile 2003 SE and
Windows Mobile 5.0. - Brad CarpenterBrad leads SW Platform Development efforts for Microsoft Surface, including the development of the sub-system, Shell, and SDK. Previously Brad was General Manager in the Unlimited Potential group, developing Windows solutions & business
opportunities to provide computing & information access for people in emerging economies. Previous to that, Brad was Director of HW & Driver Quality for Windows, responsible for device & driver coverage; development of driver development tools; overseeing
WHQL & WinHEC; and partnering with the industry to fix blue screens. Brad started on LAN Manager in 1991, moved to work on Windows 95 and subsequent versions of Windows.
Share
Download
Download this episode
Low Quality MP4
(105.5 MB)
Mid Quality WMV
(171.3 MB)
High Quality WMV
(494.8 MB)
More episodes in this series
pdc2008
Windows 7: Empower users to find, visualize and organize their data with Libraries and the…
pdc2008
Windows 7: Introducing Direct2D and DirectWrite
Related episodes
pdc2008
The New COM API for Accessibility and Automation in Windows 7
pdc2008
Microsoft .NET Framework: Declarative Programming Using XAML
pdc2008
Windows 7: Writing World-Ready Applications
pdc2008
Windows 7: Best Practices for Developing for Windows Standard User
pdc2008
Windows 7: Using Instrumentation and Diagnostics to Develop High Quality Software
pdc2008
WPF: Data-centric Applications Using the DataGrid and Ribbon Controls
pdc2008
Windows 7: Deploying Your Application with Windows Installer (MSI) and ClickOnce
pdc2008
SQL Server Compact: Embedding in Desktop and Device Applications
pdc2008
Microsoft Silverlight, WPF and the Microsoft .NET Framework: Sharing Skills and Code
pdc2008
Windows 7: The Sensor and Location Platform: Building Context-Aware Applications
The Discussion
How to download this video? Silverlight video stream is dead slow and buffers after every second
If you interested in NUI technology, but for any reasons don't have access to Surface you can look at MultiTouchVista project on Codeplex. It is open source project that is similar to Surface SDK. It also has a device abstraction layer, so you can implement
your own "input provider" to support your hardware.
Just visit http://www.codeplex.com/MultiTouchVista to download the bits. There is also a quick video tutorial of how to build your own application.
Also visit NUIGroup forum (http://nuigroup.com/forums) to communicate with other people who is interested in "changing the world"
nesher,
Is this an official comment from Microsoft?
Is the MultiTouchVista SDK project the same as Microsoft Surface SDK?
Can someone tell me where we can get a hold of the Sruface SDK. We were told we'd get it at the PDC this year...
Hey acuis - MultiTouchVista is not affiliated with Microsoft or Surface
The Surface SDK is being given to those who either attended our session or complete one of our 3 hands on labs (which will be open tomorrow). Also, if you were to order a developer Surface (order forms are now on surface.com), each one comes with 5 SDK licenses.
Please come by our booth in the Big Room tomorrow if you've got any more questions or want to chat!
Hi acuis,
No, MultiTouchVista SDK is not Surface SDK. Sorry if I made you think so.
What I wanted to say is that MultiTouchVista is a class library that will allow you to develop multitouch application. It has API like Surface API.
-rlevy, great session!!! I wish I could be there. Sadly you didn't showed how to use Vision system. Is it possible to develop custom tags?
Click the Downloads link just above the comments
We have APIs which expose the raw image reported by our cameras at ~60FPS. You can get this and process it however you like. The very first demo we did in the PDC session was showing an SDK sample which gets this image, flips it, and renders it on the
screen.
For tags in particular though, the 2 types we provide out of the box (8-bit and 128-bit) are sufficient for most needs.
Hi,
What is the regex used in the video to replace the instances of the standard WPF controls to the Surface equivalents? That was really slick.
Thanks,
Alan
Can I ask why are there 5 cameras and not 4? Because it is simple to divide rectangle in 4 parts, but not 5. Is there any special purpose for 5th camera? Or they are all equal?
I figured out the regex used in the video.[</]ListBox)[> ]
1s:Surface2
Great video. I created a synopsis on my blog:Developing applications for Microsoft Surface isn’t that hard
Hi! The regex used was built from:1. Find all important control instances (excludes app-defined styles): [</]ListBox)[> ]
2. Replace with Surface version: 1s:Surface2
im a lil confused... i definitely cant afford a surface.. so i was using the simulator.. with mouse.. how come it doesnt behave like its real life counterpart? i thought the pictures would slide across the "surface" like it did in this video... can someone
redirect me to a place where i can figure this out? even here is cool if its ok with the head people...
13 comments