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