| 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, 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 |