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

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

Issue 11818066: Fixing up Navigator.getUserMedia. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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
7 /// @domName $DOMNAME; @docsEditable true
8 class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
9
10 $if DART2JS
11 /// @domName Navigator.language; @docsEditable true
12 String get language => JS('String', '#.language || #.userLanguage', this,
13 this);
14 $endif
15
16 /**
17 * Gets a stream (video and or audio) from the local computer.
18 *
19 * Use [MediaStream.supported] to check if this is supported by the current
20 * platform.
21 *
22 * Example use:
23 *
24 * window.navigator.getUserMedia(audio:true, video: true).then((stream) {
25 * var video = new VideoElement()
26 * ..autoplay = true
27 * ..src = Url.createObjectUrl(stream);
28 * document.body.append(video);
29 * });
30 *
31 * See also:
32 * * [MediaStream.supported]
33 */
34 @SupportedBrowser(SupportedBrowser.CHROME)
35 @Experimental()
36 Future<LocalMediaStream> getUserMedia({bool audio=false, bool video=false}) {
37 var completer = new Completer<LocalMediaStream>();
38 var options = {
39 'audio': audio,
40 'video': video
41 };
42 $if DART2JS
43 _ensureGetUserMedia();
44 this._getUserMedia(convertDartToNative_Dictionary(options),
45 (stream) {
46 completer.complete(stream);
47 },
48 (error) {
49 completer.completeError(error);
50 });
51 $else
52 this._getUserMedia(options,
53 (stream) {
54 completer.complete(stream);
55 },
56 (error) {
57 completer.completeError(error);
58 });
59 $endif
60 return completer.future;
61 }
62
63 $if DART2JS
64 _ensureGetUserMedia() {
65 if (JS('bool', '!(#.getUserMedia)', this)) {
66 JS('void', '#.getUserMedia = '
67 '(#.getUserMedia || #.webkitGetUserMedia || #.mozGetUserMedia ||'
68 '#.msGetUserMedia)', this, this, this, this, this);
69 }
70 }
71
72 @JSName('getUserMedia')
73 void _getUserMedia(options, _NavigatorUserMediaSuccessCallback success,
74 _NavigatorUserMediaErrorCallback error) native;
75 $endif
76
77 $!MEMBERS
78 }
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