| OLD | NEW |
| (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 } |
| OLD | NEW |