File tree Expand file tree Collapse file tree 8 files changed +58
-21
lines changed
Expand file tree Collapse file tree 8 files changed +58
-21
lines changed Original file line number Diff line number Diff line change @@ -44,7 +44,11 @@ export 'src/track/remote/audio.dart';
4444export 'src/track/remote/remote.dart' ;
4545export 'src/track/remote/video.dart' ;
4646export 'src/track/track.dart' ;
47+
4748export 'src/track/processor.dart' ;
49+ export 'src/track/processor_native.dart'
50+ if (dart.library.js_interop) 'src/track/processor_web.dart' ;
51+
4852export 'src/track/audio_visualizer.dart' ;
4953export 'src/types/other.dart' ;
5054export 'src/types/participant_permissions.dart' ;
Original file line number Diff line number Diff line change 1414
1515import 'dart:io' ;
1616
17+ import 'package:flutter/foundation.dart' ;
18+
1719import '../platform.dart' ;
1820
1921PlatformType lkPlatformImplementation () {
@@ -31,7 +33,7 @@ bool lkPlatformIsWebMobileImplementation() {
3133}
3234
3335bool lkPlatformIsTestImplementation () =>
34- Platform .environment.containsKey ('FLUTTER_TEST' );
36+ ! kIsWeb && ! kIsWasm && Platform .environment.containsKey ('FLUTTER_TEST' );
3537
3638bool lkE2EESupportedImplementation () {
3739 return [
Original file line number Diff line number Diff line change @@ -36,6 +36,9 @@ import '../track.dart';
3636import 'audio.dart' ;
3737import 'video.dart' ;
3838
39+ import '../processor_native.dart'
40+ if (dart.library.js_interop) '../processor_web.dart' ;
41+
3942/// Used to group [LocalVideoTrack] and [RemoteVideoTrack] .
4043mixin VideoTrack on Track {
4144 @internal
@@ -258,13 +261,16 @@ abstract class LocalTrack extends Track {
258261
259262 _processor = processor;
260263
261- var processorOptions = ProcessorOptions (
262- kind: kind,
264+ var processorOptions = AudioProcessorOptions (
263265 track: mediaStreamTrack,
264266 );
265267
266268 await _processor! .init (processorOptions);
267269
270+ if (_processor? .processedTrack != null ) {
271+ setProcessedTrack (processor! .processedTrack! );
272+ }
273+
268274 logger.fine ('processor initialized' );
269275
270276 events.emit (TrackProcessorUpdateEvent (track: this , processor: _processor));
Original file line number Diff line number Diff line change @@ -21,6 +21,9 @@ import '../track/local/video.dart';
2121import '../types/video_parameters.dart' ;
2222import 'processor.dart' ;
2323
24+ import 'processor_native.dart'
25+ if (dart.library.js_interop) 'processor_web.dart' ;
26+
2427/// A type that represents front or back of the camera.
2528enum CameraPosition {
2629 front,
Original file line number Diff line number Diff line change 1- import 'package:flutter_webrtc/flutter_webrtc .dart' ;
1+ import 'package:webrtc_interface/webrtc_interface .dart' ;
22
33import '../core/room.dart' ;
44import '../types/other.dart' ;
@@ -12,18 +12,6 @@ class ProcessorOptions<T extends TrackType> {
1212 });
1313}
1414
15- class AudioProcessorOptions extends ProcessorOptions {
16- AudioProcessorOptions ({
17- required MediaStreamTrack track,
18- }) : super (kind: TrackType .AUDIO , track: track);
19- }
20-
21- class VideoProcessorOptions extends ProcessorOptions {
22- VideoProcessorOptions ({
23- required MediaStreamTrack track,
24- }) : super (kind: TrackType .VIDEO , track: track);
25- }
26-
2715abstract class TrackProcessor <T extends ProcessorOptions > {
2816 String get name;
2917
@@ -36,4 +24,6 @@ abstract class TrackProcessor<T extends ProcessorOptions> {
3624 Future <void > onPublish (Room room);
3725
3826 Future <void > onUnpublish ();
27+
28+ MediaStreamTrack ? get processedTrack;
3929}
Original file line number Diff line number Diff line change 1+ import 'package:flutter_webrtc/flutter_webrtc.dart' ;
2+
3+ import '../types/other.dart' ;
4+ import 'processor.dart' ;
5+
6+ class AudioProcessorOptions extends ProcessorOptions {
7+ AudioProcessorOptions ({
8+ required MediaStreamTrack track,
9+ }) : super (kind: TrackType .AUDIO , track: track);
10+ }
11+
12+ class VideoProcessorOptions extends ProcessorOptions {
13+ VideoProcessorOptions ({
14+ required MediaStreamTrack track,
15+ }) : super (kind: TrackType .VIDEO , track: track);
16+ }
Original file line number Diff line number Diff line change 1- import 'package:web/web.dart' ;
1+ import 'package:flutter_webrtc/flutter_webrtc.dart' show MediaStreamTrack;
2+ import 'package:web/web.dart' show AudioContext, HTMLAudioElement;
23
4+ import '../types/other.dart' ;
35import 'processor.dart' ;
46
5- class AudioProcessorOptionsWeb extends AudioProcessorOptions {
6- AudioProcessorOptionsWeb ({
7+ class AudioProcessorOptions extends ProcessorOptions {
8+ AudioProcessorOptions ({
9+ required MediaStreamTrack track,
710 this .audioElement,
811 this .audioContext,
9- required super .track,
10- });
12+ }) : super (kind: TrackType .AUDIO , track: track);
1113
1214 HTMLAudioElement ? audioElement;
1315 AudioContext ? audioContext;
1416}
17+
18+ class VideoProcessorOptions extends ProcessorOptions {
19+ VideoProcessorOptions ({
20+ required MediaStreamTrack track,
21+ }) : super (kind: TrackType .VIDEO , track: track);
22+ }
Original file line number Diff line number Diff line change @@ -46,6 +46,8 @@ abstract class Track extends DisposableChangeNotifier
4646 rtc.MediaStreamTrack get mediaStreamTrack => _mediaStreamTrack;
4747 rtc.MediaStreamTrack _mediaStreamTrack;
4848
49+ rtc.MediaStreamTrack ? _originalTrack;
50+
4951 String ? sid;
5052 rtc.RTCRtpTransceiver ? transceiver;
5153 String ? _cid;
@@ -220,4 +222,10 @@ abstract class Track extends DisposableChangeNotifier
220222 stream: stream,
221223 ));
222224 }
225+
226+ @internal
227+ void setProcessedTrack (rtc.MediaStreamTrack track) {
228+ _originalTrack = _mediaStreamTrack;
229+ _mediaStreamTrack = track;
230+ }
223231}
You can’t perform that action at this time.
0 commit comments