Media Capture Prototype: Improved Support for Real World Web Apps

Today we
updated on HTML5 Labs the previously released
Media Capture prototype to better align it to the latest
W3C editor draft.

The HTML Media Capture
working draft continues to evolve alongside
related discussions in the
Web RTC workgroup, and we have
blogged previously about why this feature is important and how our

Media Capture prototype implemented it in the past.

Because the API surface for this feature is far from final, we are supporting a simple
capture syntax with this update, which is based on
the most current proposal. We expect the capture syntax to change as the
requirements for media capture are clarified in the task force.

Latest Updates

In this
update, we are specifically adding support for a version of the getUserMedia
method (function names are ms-prefixed for prototyping purposes), the MediaStream
interface, and its associated events and callbacks. getUserMedia allows
Web developers to suggest what specific capture devices are desired. This then allows
end users to authorize the browser to access the device they selected for the duration
of the capture session.

function onLoad() {

navigator.msGetUserMedia(options, cameraStarted);

}

 

function cameraStarted(mediaStream)
{

msMediaStream = mediaStream;

getReady();

document.getElementById("previewWindow").style.display
= "block";

document["imgPreview"].src
= URL.createObjectURL(mediaStream);

}

The advantage of this is two-fold: it protects user security and privacy and lets
them pick the optimal device for the capture task from the many options available
to them on a modern PC.

Looking back at our earlier proposals, we believe those scenarios are still important
and relevant to this update: last March we released a
prototype implementation of the audio portion of a working draft of the
W3C Media Capture API on HTML5 Labs. This prototype
publicized some proposed API enhancements described in
section 6.1 of Microsoft’s HTML Speech XG Speech API Proposal. We then
updated the prototype to include the image and video capture features
described in the proposal to support scenarios we’ve heard are important for Web
developers, and incorporated your feedback on audio.

This past November, we took our experience with the development of this prototype
and interest in media capture for the browser to the W3C’s technical plenary meeting
(TPAC).
Travis Leithead shared some of our feedback with the
Device APIs (DAP) Working Group and we continued existing discussions
within the HTML Speech Incubator
Group. One result of our engagement was
the formation of a media capture joint task force in order to bring
the best of local media capture and real-time communication scenarios together.
We are
actively participating in the task force and support the
getUserMedia approach to capture.

We then released an
updated prototype in December that gives Web developers early access to photo,
video and audio media capture APIs in the browser. We anticipate evolving the prototype
to share implementation feedback and experience with the new media capture task
force. The end goal remains to create the best possible standard for the benefit
of the whole Web community.

Then, as discussed earlier, today we have updated the previously released
Media Capture prototype to better align it to the latest
W3C editor draft, which supports a simple capture syntax that is based on
the most current proposal.

Microsoft remains actively engaged in the
Media Capture task force and continues to advocate for the creation of the highest
quality API to support these scenarios.

We Welcome Your Feedback

As always, we look forward to hearing from you, especially your questions and comments
on how we can make this feature as good as possible for both the Developer community
and end users. Please contact us either in the comment section on this blog or here.

—Adalberto Foresti, Senior Program Manager, Interoperability Strategy Team
Travis Leithead, Program Manager, Internet
Explorer


IEBlog