Comments (15)
you calling produce
method from sendTransport
and passing arguments;
It's add task _produce
(where your producer
will be created) to async queue executer FlexQueue
;
There will be time when _produce
will be executed;
After task _produce
executed -> it's call method producerCallback
(which you defined when created sendTransport
) and pass created producer as argument to your callback method.
from mediasoup-client-flutter.
I will rewrite Consumer and Producer later after fixing issue with Transceiver for send transport. For some reasons after adding transceiver, creating and setting local description to peerConnection; it doesn't have mid
. If anyone know hot to fix that - let me know.
from mediasoup-client-flutter.
Hi, have you add all permission on AndroidManifest.xml ?
<uses-feature android:name="android.hardware.camera" android:required="true"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET"/>
Please check this
https://github.com/Blancduman/mediasoup-client-flutter/blob/main/example/android/app/src/main/AndroidManifest.xml
from mediasoup-client-flutter.
@akaco yes all these permissions and those 2 features are there already.
from mediasoup-client-flutter.
When you loading MediaDevice first time, it's create audio and video streams with empty mandatory. There fore that thing comes up. It's warning.
from mediasoup-client-flutter.
@Blancduman I still have some confusion, so what's happening is I see this warning when I am trying to join room, and also the application doesn't ask me for permissions either. This is what I used initially:-
Map<String, dynamic> mediaConstraints = <String, dynamic>{
'audio': false,
'video': {
'mandatory': {
'minWidth':
'1280', // Provide your own width, height and frame rate here
'minHeight': '720',
'minFrameRate': '30',
},
'optional': [
{'sourceId': videoInputDeviceId, },
],
},
};
Next what I found after a little bit of experimenting, that if I remove the optional key, it works and asks for permissions just fine. This is the changed constraints:
Map<String, dynamic> mediaConstraints = <String, dynamic>{
'audio': true,
'video': {
// 'optional': [
// {
// 'sourceId': selectedVideoInput.deviceId,
// },
// ],
'mandatory': {
'minWidth':
'1280', // Provide your own width, height and frame rate here
'minHeight': '720',
'minFrameRate': '30',
},
},
};
from mediasoup-client-flutter.
Check if your sourceId
is not null. Maybe part of issue in your case.
from mediasoup-client-flutter.
@Blancduman thanks for pointing it out, that indeed was the case. One more doubt I have is that how exactly are the producer callback and consumer callback working? Like, in my case I wanted to know how I can receive a producer (that is created through sendTransport
) and then send it to other classes or emit it using EventEmitter
.
from mediasoup-client-flutter.
So... This issue may be closed, @ritvij14 ?
from mediasoup-client-flutter.
@Blancduman I have one more doubt.
I am facing this error right now, even though I am not using any maps in the room client, have you faced this on your end before? Everything gets closed.
from mediasoup-client-flutter.
No. Need more context
from mediasoup-client-flutter.
@Blancduman so the particular error which is causing everything to close is this:-
I/flutter (20637): NoSuchMethodError: Class '_InternalLinkedHashMap<dynamic, dynamic>' has no instance method 'add'.
I/flutter (20637): Receiver: _LinkedHashMap len:0
I/flutter (20637): Tried calling: add(_LinkedHashMap len:3)
I/flutter (20637): [Peer] DEBUG: close()
I/flutter (20637): [Logger::NativeTransport] DEBUG: close()
I/flutter (20637): mediasoup-client:Transport close()
I/flutter (20637): mediasoup-client:Native close()
I/flutter (20637): mediasoup-client:Transport close()
I/flutter (20637): mediasoup-client:Native close()
D/FlutterWebRTCPlugin(20637): onConnectionChangeCLOSED
D/FlutterWebRTCPlugin(20637): onConnectionChangeCLOSED
I/flutter (20637): mediasoup-client:Transport connection state changed to closed
I/flutter (20637): mediasoup-client:Transport connection state changed to closed
and this is the error log after that:-
E/flutter (20637): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: closed
E/flutter (20637): #0 HuddleClient.join.<anonymous closure> (package:huddle01_flutter/huddle_client.dart:662:15)
E/flutter (20637): #1 HuddleClient.join.<anonymous closure> (package:huddle01_flutter/huddle_client.dart:640:28)
E/flutter (20637): #2 new WebSocket.<anonymous closure> (package:huddle01_flutter/web_socket.dart:27:52)
E/flutter (20637): #3 EventEmitter.callback (package:events2/src/event_emitter.dart:37:15)
E/flutter (20637): #4 EventEmitter.emit.<anonymous closure> (package:events2/src/event_emitter.dart:109:7)
E/flutter (20637): #5 List.forEach (dart:core-patch/growable_array.dart:403:8)
E/flutter (20637): #6 EventEmitter.emit (package:events2/src/event_emitter.dart:108:35)
E/flutter (20637): #7 Peer._handleRequest (package:protoo_client/src/peer.dart:178:12)
E/flutter (20637): #8 Peer._handleTransport.<anonymous closure> (package:protoo_client/src/peer.dart:166:9)
E/flutter (20637): #9 EventEmitter.callback (package:events2/src/event_emitter.dart:31:15)
E/flutter (20637): #10 EventEmitter.emit.<anonymous closure> (package:events2/src/event_emitter.dart:109:7)
E/flutter (20637): #11 List.forEach (dart:core-patch/growable_array.dart:403:8)
E/flutter (20637): #12 EventEmitter.emit (package:events2/src/event_emitter.dart:108:35)
E/flutter (20637): #13 EnhancedEventEmitter.safeEmit (package:protoo_client/src/EnhancedEventEmitter.dart:13:7)
E/flutter (20637): #14 Transport._runWebSocket.<anonymous closure>.<anonymous closure> (package:protoo_client/src/transports/NativeTransport.dart:80:16)
E/flutter (20637): #15 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter (20637): #16 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (20637): #17 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (20637): #18 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter (20637): #19 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter (20637): #20 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19)
E/flutter (20637): #21 _StreamController._add (dart:async/stream_controller.dart:607:7)
E/flutter (20637): #22 _StreamController.add (dart:async/stream_controller.dart:554:5)
E/flutter (20637): #23 new _WebSocketImpl._fromSocket.<anonymous closure> (dart:_http/websocket_impl.dart:1145:21)
E/flutter (20637): #24 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter (20637): #25 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (20637): #26 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (20637): #27 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter (20637): #28 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter (20637): #29 _SinkTransformerStreamSubscription._add (dart:async/stream_transformers.dart:63:11)
E/flutter (20637): #30 _EventSinkWrapper.add (dart:async/stream_transformers.dart:13:11)
E/flutter (20637): #31 _WebSocketProtocolTransformer._messageFrameEnd (dart:_http/websocket_impl.dart:338:23)
E/flutter (20637): #32 _WebSocketProtocolTransformer.add (dart:_http/websocket_impl.dart:232:46)
E/flutter (20637): #33 _SinkTransformerStreamSubscription._handleData (dart:async/stream_transformers.dart:111:24)
E/flutter (20637): #34 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter (20637): #35 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (20637): #36 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (20637): #37 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter (20637): #38 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter (20637): #39 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19)
E/flutter (20637): #40 _StreamController._add (dart:async/stream_controller.dart:607:7)
E/flutter (20637): #41 _StreamController.add (dart:async/stream_controller.dart:554:5)
E/flutter (20637): #42 _Socket._onData (dart:io-patch/socket_patch.dart:2160:41)
E/flutter (20637): #43 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter (20637): #44 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (20637): #45 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (20637): #46 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter (20637): #47 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter (20637): #48 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19)
E/flutter (20637): #49 _StreamController._add (dart:async/stream_controller.dart:607:7)
E/flutter (20637): #50 _StreamController.add (dart:async/stream_controller.dart:55
I/flutter (20637): mediasoup-client:Transport consume()
E/flutter (20637): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: closed
E/flutter (20637): #0 HuddleClient.join.<anonymous closure> (package:huddle01_flutter/huddle_client.dart:662:15)
E/flutter (20637): #1 HuddleClient.join.<anonymous closure> (package:huddle01_flutter/huddle_client.dart:640:28)
E/flutter (20637): #2 new WebSocket.<anonymous closure> (package:huddle01_flutter/web_socket.dart:27:52)
E/flutter (20637): #3 EventEmitter.callback (package:events2/src/event_emitter.dart:37:15)
E/flutter (20637): #4 EventEmitter.emit.<anonymous closure> (package:events2/src/event_emitter.dart:109:7)
E/flutter (20637): #5 List.forEach (dart:core-patch/growable_array.dart:403:8)
E/flutter (20637): #6 EventEmitter.emit (package:events2/src/event_emitter.dart:108:35)
E/flutter (20637): #7 Peer._handleRequest (package:protoo_client/src/peer.dart:178:12)
E/flutter (20637): #8 Peer._handleTransport.<anonymous closure> (package:protoo_client/src/peer.dart:166:9)
E/flutter (20637): #9 EventEmitter.callback (package:events2/src/event_emitter.dart:31:15)
E/flutter (20637): #10 EventEmitter.emit.<anonymous closure> (package:events2/src/event_emitter.dart:109:7)
E/flutter (20637): #11 List.forEach (dart:core-patch/growable_array.dart:403:8)
E/flutter (20637): #12 EventEmitter.emit (package:events2/src/event_emitter.dart:108:35)
E/flutter (20637): #13 EnhancedEventEmitter.safeEmit (package:protoo_client/src/EnhancedEventEmitter.dart:13:7)
E/flutter (20637): #14 Transport._runWebSocket.<anonymous closure>.<anonymous closure> (package:protoo_client/src/transports/NativeTransport.dart:80:16)
E/flutter (20637): #15 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter (20637): #16 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (20637): #17 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (20637): #18 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter (20637): #19 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter (20637): #20 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19)
E/flutter (20637): #21 _StreamController._add (dart:async/stream_controller.dart:607:7)
E/flutter (20637): #22 _StreamController.add (dart:async/stream_controller.dart:554:5)
E/flutter (20637): #23 new _WebSocketImpl._fromSocket.<anonymous closure> (dart:_http/websocket_impl.dart:1145:21)
E/flutter (20637): #24 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter (20637): #25 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (20637): #26 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (20637): #27 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter (20637): #28 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter (20637): #29 _SinkTransformerStreamSubscription._add (dart:async/stream_transformers.dart:63:11)
E/flutter (20637): #30 _EventSinkWrapper.add (dart:async/stream_transformers.dart:13:11)
E/flutter (20637): #31 _WebSocketProtocolTransformer._messageFrameEnd (dart:_http/websocket_impl.dart:338:23)
E/flutter (20637): #32 _WebSocketProtocolTransformer.add (dart:_http/websocket_impl.dart:232:46)
E/flutter (20637): #33 _SinkTransformerStreamSubscription._handleData (dart:async/stream_transformers.dart:111:24)
E/flutter (20637): #34 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter (20637): #35 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (20637): #36 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (20637): #37 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter (20637): #38 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter (20637): #39 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19)
E/flutter (20637): #40 _StreamController._add (dart:async/stream_controller.dart:607:7)
E/flutter (20637): #41 _StreamController.add (dart:async/stream_controller.dart:554:5)
E/flutter (20637): #42 _Socket._onData (dart:io-patch/socket_patch.dart:2160:41)
E/flutter (20637): #43 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter (20637): #44 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter (20637): #45 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter (20637): #46 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter (20637): #47 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter (20637): #48 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19)
E/flutter (20637): #49 _StreamController._add (dart:async/stream_controller.dart:607:7)
E/flutter (20637): #50 _StreamController.add (dart:async/stream_controller.dart:55
And this is the code block causing that error:
_webSocket.onRequest = (request, reject, accept) async {
switch (request['method']) {
case 'newConsumer':
{
if (!consume) {
reject(403, 'I do not want to consume');
break;
}
try {
_recvTransport!.consume(
id: request['data']['id'],
producerId: request['data']['producerId'],
kind: RTCRtpMediaTypeExtension.fromString(
request['data']['kind']),
rtpParameters:
RtpParameters.fromMap(request['data']['rtpParameters']),
appData: Map<String, dynamic>.from(request['data']['appData']),
peerId: request['data']['peerId'],
accept: accept,
);
} catch (error) {
log('newConsumer request failed: $error');
throw (error);
}
break;
}
// case 'newDataConsumer':
// break;
default:
break;
}
};
Please tell me if some more info is needed.
from mediasoup-client-flutter.
from mediasoup-client-flutter.
Alright 👍🏻
from mediasoup-client-flutter.
@Blancduman while running the application in the example
folder, I got this error when I tried to Unmute my mic:
I/flutter ( 6821): [Peer] DEBUG: request() [method:pauseProducer, id: 983719]
I/flutter ( 6821): mediasoup-client:Producer pause()
E/flutter ( 6821): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Unhandled error LateInitializationError: Field 'error' has not been initialized. occurred in Instance of 'ProducersBloc'.
E/flutter ( 6821): #0 Logger.error (package:mediasoup_client_flutter/src/common/logger.dart)
package:mediasoup_client_flutter/…/common/logger.dart:1
E/flutter ( 6821): #1 Producer.pause
package:mediasoup_client_flutter/src/producer.dart:252
E/flutter ( 6821): #2 ProducersBloc._mapProducerPausedToState
package:example/…/producers/producers_bloc.dart:91
E/flutter ( 6821): <asynchronous suspension>
E/flutter ( 6821):
Should I create a new bug issue for this?
from mediasoup-client-flutter.
Related Issues (20)
- Click to close the camera to report an error
- Voice calls on iOS are too low HOT 2
- The rear camera image is flipped 180 degrees HOT 2
- Remote video is blurry
- iOS audio always on speaker and can't switch to earpiece HOT 2
- how to broadcast one to many HOT 3
- load.device error
- Video images display problems
- Android phone sharing screen crash
- Transport.Produce(): type 'String' is not a subtype of type 'int' HOT 3
- transport.produce(): Null check operator used on a null value
- Why "maxRetransmits" is "required" in Transport.produceData()? HOT 2
- Transport connection state changed to Failed HOT 11
- Info regarding architecture and the mediasoup server compatability
- Send Transport "produce" listener not running on .produce() HOT 3
- update ..
- issue regarding not able to produce
- createSendTransportFromMap not connecting
- video stop after passing after sometime
- If producer transport close automatic consumer transport also closing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mediasoup-client-flutter.