Skip to content

Commit 330dfb8

Browse files
committed
update.
1 parent 04e0d23 commit 330dfb8

File tree

7 files changed

+18
-31
lines changed

7 files changed

+18
-31
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ doc/api/
1919
*.js_
2020
*.js.deps
2121
*.js.map
22+
.DS_Store

lib/src/media_devices.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@ class MediaDevices {
4444
}
4545
}
4646

47-
Future<MediaStream> getUserMedia(
48-
MediaStreamConstraints mediaStreamConstraints,
49-
{MediaStreamConstraints constraints}) async {
47+
Future<MediaStream> getUserMedia({MediaStreamConstraints constraints}) async {
5048
try {
5149
var jsStream =
5250
await promiseToFuture<MediaStreamJs>(_js.getUserMedia(constraints));

lib/src/rtc_data_channel.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ library dart_webrtc;
33

44
import 'package:js/js.dart';
55

6-
import 'enums.dart';
7-
86
@JS()
97
class RTCDataChannel {
108
external int get id;
@@ -27,8 +25,6 @@ class RTCDataChannel {
2725
external set onclosing(Function() func);
2826
external set onclose(Function() func);
2927
external set onmessage(Function(RTCDataChannelMessage message) func);
30-
31-
RTCDataChannelState get state => rtcDataChannelStateForString(readyState);
3228
}
3329

3430
@JS()

lib/src/rtc_rtp_parameters.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,6 @@ class RTCRtpEncoding {
7676
/// SSRC to be used by this encoding.
7777
/// Can't be changed between getParameters/setParameters.
7878
external int get ssrc;
79-
80-
Map<String, dynamic> toMap() {
81-
return {};
82-
}
8379
}
8480

8581
@JS()

lib/src/video_element.dart

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
library dart_webrtc;
33

44
import 'dart:html' as html;
5-
65
import 'package:js/js.dart';
7-
86
import 'media_stream.dart';
97

108
class RTCVideoElement {
@@ -14,14 +12,11 @@ class RTCVideoElement {
1412
..muted = false
1513
..controls = false
1614
..style.objectFit = 'contain'
17-
..style.border = 'none'
18-
..id = 'dart-webrtc-video-${_idx++}';
15+
..style.border = 'none';
1916

2017
// Allows Safari iOS to play the video inline
2118
_html.setAttribute('playsinline', 'true');
2219
}
23-
static int _idx = 0;
24-
Element _rtc;
2520
MediaStream _stream;
2621

2722
html.VideoElement _html;
@@ -32,8 +27,7 @@ class RTCVideoElement {
3227

3328
set srcObject(MediaStream stream) {
3429
_stream = stream;
35-
_rtc = querySelector('#${_html.id}');
36-
_rtc.srcObject = _stream?.js;
30+
_html.srcObject = convertToHtmlMediaStream(stream);
3731
}
3832

3933
int get videoWidth => _html.videoWidth;
@@ -66,10 +60,10 @@ class RTCVideoElement {
6660
void removeAttribute(String name) => _html.removeAttribute(name);
6761
}
6862

69-
@JS('Element')
70-
abstract class Element {
71-
external set srcObject(MediaStreamJs stream);
63+
html.MediaStream convertToHtmlMediaStream(MediaStream jsStream) {
64+
var htmlStream = html.MediaStream();
65+
jsStream.getTracks().forEach((track) {
66+
htmlStream.addTrack(track as html.MediaStreamTrack);
67+
});
68+
return htmlStream;
7269
}
73-
74-
@JS('window.document.querySelector')
75-
external Element querySelector(String id);

pubspec.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ environment:
99
dependencies:
1010
js: ^0.6.2
1111
# path: ^1.7.0
12-
protoo_client: ^0.3.0
13-
http: any
14-
test: ^1.15.4
1512

1613
dev_dependencies:
1714
build_runner: ^1.10.0
1815
build_web_compilers: ^2.11.0
19-
pedantic: ^1.9.0
16+
pedantic: ^1.9.0
17+
protoo_client: ^0.3.0
18+
http: any
19+
test: ^1.15.4

web/main.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,19 @@ import 'test_peerconnection.dart' as peerconnection_tests;
99
import 'test_video_element.dart' as video_elelment_tests;
1010

1111
void main() {
12+
/*
1213
video_elelment_tests.testFunctions.forEach((Function func) => func());
1314
media_devices_tests.testFunctions.forEach((Function func) => func());
1415
media_stream_tests.testFunctions.forEach((Function func) => func());
1516
media_stream_track_tests.testFunctions.forEach((Function func) => func());
1617
peerconnection_tests.testFunctions.forEach((Function func) => func());
18+
*/
19+
loopBackTest();
1720
}
1821

1922
void loopBackTest() async {
2023
var local = html.document.querySelector('#local');
21-
RTCVideoElement localVideo;
22-
localVideo = RTCVideoElement();
24+
var localVideo = RTCVideoElement();
2325
local.append(localVideo.htmlElement);
2426

2527
var list = await navigator.mediaDevices.enumerateDevices();

0 commit comments

Comments
 (0)