Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: tools/dom/templates/html/impl/impl_Navigator.darttemplate

Issue 12022027: Fixing up Navigator.getUserMedia. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fixes. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/dom/templates/html/impl/impl_MediaStream.darttemplate ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 part of $LIBRARYNAME;
6 $ANNOTATIONS
7 class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
8
9 $if DART2JS
10 @DomName('Navigator.language')
11 String get language => JS('String', '#.language || #.userLanguage', this,
12 this);
13 $endif
14
15 /**
16 * Gets a stream (video and or audio) from the local computer.
17 *
18 * Use [MediaStream.supported] to check if this is supported by the current
19 * platform.
20 *
21 * Example use:
22 *
23 * window.navigator.getUserMedia(audio:true, video: true).then((stream) {
24 * var video = new VideoElement()
25 * ..autoplay = true
26 * ..src = Url.createObjectUrl(stream);
27 * document.body.append(video);
28 * });
29 *
30 * See also:
31 * * [MediaStream.supported]
32 */
33 @DomName('Navigator.webkitGetUserMedia')
34 @SupportedBrowser(SupportedBrowser.CHROME)
35 @Experimental()
36 Future<LocalMediaStream> getUserMedia({bool audio: false,
37 bool video: false}) {
38 var completer = new Completer<LocalMediaStream>();
39 var options = {
40 'audio': audio,
41 'video': video
42 };
43 $if DART2JS
44 _ensureGetUserMedia();
45 this._getUserMedia(convertDartToNative_Dictionary(options),
46 (stream) {
47 completer.complete(stream);
48 },
49 (error) {
50 completer.completeError(error);
51 });
52 $else
53 this._getUserMedia(options,
54 (stream) {
55 completer.complete(stream);
56 },
57 (error) {
58 completer.completeError(error);
59 });
60 $endif
61 return completer.future;
62 }
63
64 $if DART2JS
65 _ensureGetUserMedia() {
66 if (JS('bool', '!(#.getUserMedia)', this)) {
67 JS('void', '#.getUserMedia = '
68 '(#.getUserMedia || #.webkitGetUserMedia || #.mozGetUserMedia ||'
69 '#.msGetUserMedia)', this, this, this, this, this);
70 }
71 }
72
73 @JSName('getUserMedia')
74 void _getUserMedia(options, _NavigatorUserMediaSuccessCallback success,
75 _NavigatorUserMediaErrorCallback error) native;
76 $endif
77
78 $!MEMBERS
79 }
OLDNEW
« no previous file with comments | « tools/dom/templates/html/impl/impl_MediaStream.darttemplate ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698